1 00:00:00,000 --> 00:00:15,059 >> [MUSIK SPIELEN] 2 00:00:15,059 --> 00:00:19,170 >> Dies ist CS50-- Harvard Universität Einführung 3 00:00:19,170 --> 00:00:22,070 zum intellektuellen Unternehmen der Informatik 4 00:00:22,070 --> 00:00:23,800 und die Kunst der Programmierung. 5 00:00:23,800 --> 00:00:27,020 Und mein Name ist David Malan und Ich war gerade an diesem Morgen zu denken, 6 00:00:27,020 --> 00:00:33,120 es ist erstaunlich 20 Jahren heute seit ich das letzte Mal jetzt saß, wo euch tun. 7 00:00:33,120 --> 00:00:33,840 >> Es war 1996. 8 00:00:33,840 --> 00:00:37,550 Ich war ein College-Student, und ich nahm CS50 zum ersten Mal. 9 00:00:37,550 --> 00:00:40,890 Und ich hatte noch nicht einmal den Nerv aufgestanden es selbst ersten Jahr zu nehmen, 10 00:00:40,890 --> 00:00:42,500 teilweise wegen der Zeit. 11 00:00:42,500 --> 00:00:44,782 Informatik mir wurde wie Art, meh. 12 00:00:44,782 --> 00:00:46,990 Ich war ein bisschen ein Geek wächst up, aber ich habe nicht wirklich 13 00:00:46,990 --> 00:00:49,180 haben keine intellektuelle Interesse an, was schien, 14 00:00:49,180 --> 00:00:51,920 zu sein, nur eine ganze Reihe von Menschen Programmierung die ganze Zeit. 15 00:00:51,920 --> 00:00:53,904 >> Und ich hatte Angst um ehrlich zu sein. 16 00:00:53,904 --> 00:00:56,820 Der Kurs und Informatik mehr und teilweise im Allgemeinen hatten, 17 00:00:56,820 --> 00:01:01,230 noch hat diesen Ruf eines Feldes Vorsicht, nur wenn da so viele von uns 18 00:01:01,230 --> 00:01:04,410 sind nicht vertraut mit ihm und nicht sicher davon. 19 00:01:04,410 --> 00:01:08,480 Und es war wirklich nicht, bis ich einkaufte Diese Klasse, die College-Student-fall-- 20 00:01:08,480 --> 00:01:10,880 und selbst dann, ich nur eingeschrieben weil der professor-- 21 00:01:10,880 --> 00:01:13,950 einer meiner ersten Mentoren, Brian Kernighan jetzt bei Princeton-- 22 00:01:13,950 --> 00:01:15,700 mir erlaubt, die Klasse Pass nicht zu nehmen. 23 00:01:15,700 --> 00:01:18,020 Und in der Tat, das ist, warum Heute lassen wir und ermutigen 24 00:01:18,020 --> 00:01:20,030 Schüler dieser Klasse zu nehmen sat / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Und erst dann, durch die Ende des Semesters 26 00:01:22,040 --> 00:01:24,870 dies wurde mir klar, wie, wow, war nicht so ein unbekanntes Feld. 27 00:01:24,870 --> 00:01:26,850 Tatsächlich war dies ein sehr empowering Feld, 28 00:01:26,850 --> 00:01:28,970 und aufregender, vor allem später, 29 00:01:28,970 --> 00:01:32,809 wie ich nahm Kurse in Dramatic Arts 101 und Latein A 30 00:01:32,809 --> 00:01:34,600 und dann schließlich grad Schule Archäologie, 31 00:01:34,600 --> 00:01:37,860 habe ich beginnen, um wirklich zu sehen Kreuzungen dieses Feldes, computer 32 00:01:37,860 --> 00:01:41,979 Wissenschaft, mit den Geisteswissenschaften, Naturwissenschaften, Kunst, Medizin, 33 00:01:41,979 --> 00:01:42,520 und dergleichen. 34 00:01:42,520 --> 00:01:44,420 Und so ist das, was ist einfach so ordentlich über Informatik 35 00:01:44,420 --> 00:01:46,930 schließlich, wie wir hoffen, dass Sie see-- ist seine Anwendbarkeit 36 00:01:46,930 --> 00:01:50,280 zu diesen anderen Bereichen, und wie Sie nehmen einige der heutigen und der Semester 37 00:01:50,280 --> 00:01:53,070 Ideen und praktische Fertigkeiten zurück zu Ihrer eigenen Domain, 38 00:01:53,070 --> 00:01:58,200 und erkunden Sie tatsächlich diese Kreuzung der freien Künste und die Wissenschaften. 39 00:01:58,200 --> 00:02:02,690 >> Also 73% von Ihnen, wenn im letzten Jahr ist jede Angabe, 40 00:02:02,690 --> 00:02:04,390 noch nie ein CS-Kurs genommen. 41 00:02:04,390 --> 00:02:06,389 Also, wenn, wie ich, du bist das Gefühl ein wenig 42 00:02:06,389 --> 00:02:09,190 Angst, oder offen sind Sie nicht wirklich sicher, warum Sie noch hier sind. 43 00:02:09,190 --> 00:02:11,510 Vielleicht folgen Sie nur einige Freunde über jetzt Sanders. 44 00:02:11,510 --> 00:02:12,490 Das ist völlig in Ordnung. 45 00:02:12,490 --> 00:02:15,059 Das Ziel ist hier, Haken Sie und Sie zu beruhigen 46 00:02:15,059 --> 00:02:17,100 dass, wenn Sie schauen zu links und nach rechts, 47 00:02:17,100 --> 00:02:21,480 Sie gehen Mitschülern zu sehen, mit so wenig oder so viel Erfahrung 48 00:02:21,480 --> 00:02:22,890 dass Sie vielleicht selbst haben. 49 00:02:22,890 --> 00:02:25,280 Und in der Tat, wir teilen einige Statistiken später heute 50 00:02:25,280 --> 00:02:28,120 als zu dem, was die Demografie die Klasse aussehen kann. 51 00:02:28,120 --> 00:02:31,440 >> Und als reassurance-- und diese fügten wir bedeuten, da ich über den Verlauf nahm 52 00:02:31,440 --> 00:02:33,252 einige Jahre ago-- in den Kurs des Lehrplans 53 00:02:33,252 --> 00:02:35,460 this-- das ist, was letztlich Fragen in diesem Kurs 54 00:02:35,460 --> 00:02:38,040 ist nicht so sehr, wenn Sie am Ende up in Bezug auf Ihre Mitschüler, 55 00:02:38,040 --> 00:02:43,110 aber wo man in Woche 11, das Ende der Semester, am Ende, um sich nach oben relativ 56 00:02:43,110 --> 00:02:46,280 in Woche 0, das ist wo wir sind heute hier. 57 00:02:46,280 --> 00:02:48,704 Und das ist, was ich erkannte, Vor all diesen Jahren. 58 00:02:48,704 --> 00:02:50,620 Und ich kenne eine Menge Klassen sagen dies, aber es ist 59 00:02:50,620 --> 00:02:52,450 in der Informatik besonders wahr. 60 00:02:52,450 --> 00:02:55,320 Am Ende des Tages, dieses Feld nicht vertraut ist, wie es für mich war, 61 00:02:55,320 --> 00:02:58,590 und für Sie sein, ist wirklich nur um Probleme zu lösen. 62 00:02:58,590 --> 00:03:01,324 Und als solcher hat es diese Anwendbarkeit in anderen Bereichen zu erhalten. 63 00:03:01,324 --> 00:03:03,490 Und in der Tat, wenn wir versuchten, zu destillieren, was das bedeutet, 64 00:03:03,490 --> 00:03:06,897 dies ist der Problemlösung in seinem Wesen, wage ich zu behaupten. 65 00:03:06,897 --> 00:03:09,480 Es gibt input-- so, was es ist, dass Sie zu lösen versuchen. 66 00:03:09,480 --> 00:03:12,264 Es gibt Ausgang, das ist hoffentlich Die Lösung für dieses Problem. 67 00:03:12,264 --> 00:03:14,180 Und dann, als würden wir sagen in der Informatik, 68 00:03:14,180 --> 00:03:17,310 es gibt diese Blackbox in der Mitte, die Sie nicht unbedingt 69 00:03:17,310 --> 00:03:19,450 haben zu kümmern, wie es funktioniert. 70 00:03:19,450 --> 00:03:22,230 Sie selbst könnte schließlich implementieren, was in diesem Feld ist. 71 00:03:22,230 --> 00:03:25,194 Aber für die Zwecke der heutigen und mehr allgemein im Leben, alles, was Sie kümmern sich um 72 00:03:25,194 --> 00:03:26,610 ist, dass diese Probleme gelöst bekommen. 73 00:03:26,610 --> 00:03:29,340 >> Und was ist dieser Kurs letztlich über erforscht 74 00:03:29,340 --> 00:03:31,700 der Schnittpunkt der Diese Ein- und Ausgänge, 75 00:03:31,700 --> 00:03:34,410 und diese sogenannten Algorithmen, wie wir bald sehen, 76 00:03:34,410 --> 00:03:37,450 dass das umzusetzen, was ist darunter gibt, die Haube. 77 00:03:37,450 --> 00:03:40,487 Aber diese Eingänge und diese outputs-- was bedeutet das eigentlich? 78 00:03:40,487 --> 00:03:43,570 Nun, am Ende des Tages, wir brauchen eine Möglichkeit, Informationen zu vertreten. 79 00:03:43,570 --> 00:03:46,660 Dies gilt insbesondere in einem Computer, die so schick und komplex wie es 80 00:03:46,660 --> 00:03:48,160 scheinen mag, ist eine ziemlich dumme Gerät. 81 00:03:48,160 --> 00:03:52,240 Es dauert electricity-- ob aus ein Kabel oder eine Batterie als input-- 82 00:03:52,240 --> 00:03:55,820 und dann erzeugt es einige vorprogrammierte Antworten auf dem Bildschirm. 83 00:03:55,820 --> 00:03:57,970 >> Aber wie kommen wir aus beginnen dort zu beenden? 84 00:03:57,970 --> 00:03:59,470 Nun, was ist ein Problem, das gelöst werden? 85 00:03:59,470 --> 00:04:01,050 Na ja, vielleicht könnten wir auf Am Anfang eines jeden Semesters, 86 00:04:01,050 --> 00:04:02,841 versuchen, die Teilnahme zu nehmen in einem Raum wie diesem. 87 00:04:02,841 --> 00:04:04,750 So könnte ich wie ein tun, zwei, drei. 88 00:04:04,750 --> 00:04:07,060 Oder vielleicht, wenn ich es tat, Art im Auge zu behalten 89 00:04:07,060 --> 00:04:10,560 von myself-- Spur von things-- zu halten Ich konnte schnell aus den Fingern ausgeführt werden. 90 00:04:10,560 --> 00:04:14,650 So könnte ich nur Hash marks-- zu machen Person, zwei, drei, vier, fünf, sechs, 91 00:04:14,650 --> 00:04:15,431 sieben acht. 92 00:04:15,431 --> 00:04:17,930 Und wir alle haben wahrscheinlich dies geschieht, ob an den Händen 93 00:04:17,930 --> 00:04:19,680 oder auf einem Stück Papier. 94 00:04:19,680 --> 00:04:22,140 Und das ist eigentlich nur etwas namens einstellige notation-- 95 00:04:22,140 --> 00:04:26,130 wo, wenn Sie nur einen Buchstaben haben in Ihrem Alphabet, ein oder Hash 96 00:04:26,130 --> 00:04:29,440 Marke in diesem Fall für jeden Eingang, den Sie zählen möchten, 97 00:04:29,440 --> 00:04:32,330 müssen Sie eine dieser niedergeschlagen letters-- eines dieser Zeichen. 98 00:04:32,330 --> 00:04:32,510 >> Gut. 99 00:04:32,510 --> 00:04:34,790 Das ist alles schön und gut und gar nicht so kompliziert. 100 00:04:34,790 --> 00:04:37,800 Aber Computer sind nicht alle dass viel komplizierter. 101 00:04:37,800 --> 00:04:40,770 Tatsächlich sind die meisten von euch wahrscheinlich wissen, auch wenn Sie nicht wirklich haben 102 00:04:40,770 --> 00:04:44,080 betrachtet, was das bedeutet, dass Computer verstehen nur Nullen 103 00:04:44,080 --> 00:04:45,870 und ones-- der sogenannten binären System. 104 00:04:45,870 --> 00:04:49,390 Wir Menschen, sind dagegen so viel anspruchsvoller, sofern 105 00:04:49,390 --> 00:04:51,770 wie wir sie verstehen Nullen durch Neunen. 106 00:04:51,770 --> 00:04:55,740 >> Aber selbst wenn binär ist, anfangs Blick gar nicht so vertraut sind, 107 00:04:55,740 --> 00:05:00,330 es stellt sich heraus, es ist genau wie die Systeme und die Ideen, die wir schon kennen. 108 00:05:00,330 --> 00:05:02,420 So zum Beispiel, darüber nachzudenken. 109 00:05:02,420 --> 00:05:03,896 Dies ist nur eine Folge von Symbolen. 110 00:05:03,896 --> 00:05:05,770 Und ihr alle, wenn es schaute, wahrscheinlich 111 00:05:05,770 --> 00:05:09,380 denken 123-- nichts dort wirklich interessant. 112 00:05:09,380 --> 00:05:11,940 Aber warum ist es diese Zahl, 123? 113 00:05:11,940 --> 00:05:14,440 Dies sind nur Glyphen auf die screen-- nur Muster 114 00:05:14,440 --> 00:05:16,387 dass jemand gezeichnet haben oder getippt könnten. 115 00:05:16,387 --> 00:05:18,970 Aber wenn Sie wie ich sind, Sie erinnern sich wahrscheinlich von der Grundschule 116 00:05:18,970 --> 00:05:21,610 dass es eine Art sind Spalten oder hier Orte. 117 00:05:21,610 --> 00:05:25,340 Es ist der Platz, der ein und Zehnerstelle und den Platz des hundert. 118 00:05:25,340 --> 00:05:29,820 Und der Grund, dass dies 123 und nicht nur ein Muster von drei Symbole 119 00:05:29,820 --> 00:05:33,090 Denn selbstverständlich, wenn man haben eine in der Hunderterstelle, 120 00:05:33,090 --> 00:05:36,610 Sie haben die Mathematik von 100-mal ein, und dann zwei in der Zehnerstelle. 121 00:05:36,610 --> 00:05:41,390 Das ist also 10-mal 2, und dann drei in der seinen Platz und das ist 1 mal 3. 122 00:05:41,390 --> 00:05:45,670 Und wenn Sie all jene zusammenzählen, von Natürlich erhalten Sie 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Also begannen wir mit nur einem Muster von symbols-- eine alphabet-- 124 00:05:48,220 --> 00:05:51,670 aber dann kartiert wir Bedeutung auf es anhand dieser Spalten. 125 00:05:51,670 --> 00:05:54,450 Nun, es stellt sich heraus, dass Computer sind wirklich nicht 126 00:05:54,450 --> 00:05:56,300 so verschieden von dir und mir. 127 00:05:56,300 --> 00:06:01,840 Doch statt der Befugnisse von 10 verwenden, so zu speak-- 1, 10, 100, 1.000, 128 00:06:01,840 --> 00:06:04,330 10.000 Ort und so forth-- sie tatsächlich 129 00:06:04,330 --> 00:06:08,930 nur verwenden Kräfte der 2-- so ein, 2, 4, und dann 130 00:06:08,930 --> 00:06:12,810 wenn wir mehr Ziffern stellen, 8, 16, 32, 64, 128, und so weiter. 131 00:06:12,810 --> 00:06:16,050 Und so ist dies, wie ein Computer würde die Zahl 0 darstellen, 132 00:06:16,050 --> 00:06:17,300 genau wie wir Menschen. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- und Sie können sich wahrscheinlich vorstellen, welche Muster von Nullen und Einsen, 134 00:06:21,660 --> 00:06:24,610 wenn ein Computer kann nur sprechen 0 oder 1-- was 135 00:06:24,610 --> 00:06:29,110 Muster wird vertreten die Zahl, die wir Menschen kennen als 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Gut. 138 00:06:31,090 --> 00:06:35,900 So 0, 0, 1 ist, wie wir vertreten 1, so dass Sie vielleicht geneigt sein, dann 139 00:06:35,900 --> 00:06:39,510 repräsentieren die Nummer 2, wenn Sie den Platz der vier und den Platz der beiden 140 00:06:39,510 --> 00:06:48,290 als ein Ort, könnte man sagen, na ja, wenn wir eine 1 in der seinen Platz hatte, 141 00:06:48,290 --> 00:06:50,430 und jetzt wollen wir zählen bis zu 2, könnten Sie 142 00:06:50,430 --> 00:06:53,310 dies tun und lassen dies eine Null zu sein. 143 00:06:53,310 --> 00:06:56,397 Aber natürlich ist dies nicht, wie das Dezimalsystem arbeitet entweder. 144 00:06:56,397 --> 00:06:58,230 Wenn Sie setzen eine Ziffer in diese beiden Säulen, 145 00:06:58,230 --> 00:06:59,563 Sie habe die Arithmetik zu tun. 146 00:06:59,563 --> 00:07:01,930 Also, welche Zahl habe ich Versehen nur repräsentieren? 147 00:07:01,930 --> 00:07:06,710 >> So ist es 3, weil 2 mal 1 plus 1 1 mal, natürlich, gibt uns drei. 148 00:07:06,710 --> 00:07:08,340 So würde dies zwei sein. 149 00:07:08,340 --> 00:07:12,730 Die Bit-Art von Flips, sozusagen als 0 wird ein ein, über viel wie ein 9 Rollen 150 00:07:12,730 --> 00:07:14,840 und wird zu einem 0, wenn Sie die 1 tragen. 151 00:07:14,840 --> 00:07:16,510 Dies würde dann drei natürlich sein. 152 00:07:16,510 --> 00:07:20,170 Four-- eine andere interessante Sache geschieht, wo die, die über rollen 153 00:07:20,170 --> 00:07:21,750 und Sie tragen die 1, so zu sprechen. 154 00:07:21,750 --> 00:07:23,320 So dies natürlich ist 4. 155 00:07:23,320 --> 00:07:25,160 >> Aber wenn Sie schnell vorwärts jetzt, Was ist die größte Zahl gehen 156 00:07:25,160 --> 00:07:26,660 sein, dass ein Computer darstellen kann? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 So ist es nur sieben in diesem Fall, nicht wahr? 159 00:07:32,380 --> 00:07:35,570 Da Sie ein ein in den vier haben, Eine Eins in den beiden, eine Eins in der einen. 160 00:07:35,570 --> 00:07:36,900 Also ist das 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Damit gibt Ihnen sieben. 162 00:07:37,972 --> 00:07:39,680 Und in der Tat wäre es scheinen auf den ersten Blick 163 00:07:39,680 --> 00:07:43,750 dass Computer können zählen nicht höher ist als diese. 164 00:07:43,750 --> 00:07:45,210 >> Aber das ist natürlich nicht wahr. 165 00:07:45,210 --> 00:07:48,243 Was wir Menschen tun, wenn wir wollen, zu zählen höher als wie 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 tragen nur die eine und nur eine vierte Ziffer links hinzuzufügen. 168 00:07:53,900 --> 00:07:55,070 Und so in der Tat konnten wir. 169 00:07:55,070 --> 00:07:57,900 Wir konnten eine acht der haben Ort und ein Platz des 16., 170 00:07:57,900 --> 00:08:02,000 und ein 32-Platz, 64, 128-- und Sie kann nur halten bis ins Unendliche geht. 171 00:08:02,000 --> 00:08:04,640 So werden diese Nullen und ones-- die sogenannte binäre system-- 172 00:08:04,640 --> 00:08:10,290 sind das, was würde ein Wissenschaftler Computer im Allgemeinen ein wenig nennen, oder binary digit. 173 00:08:10,290 --> 00:08:13,590 >> Aber jetzt, wie kommen wir aus der Konzept oder die Grafik dieser Dinge 174 00:08:13,590 --> 00:08:14,620 einem tatsächlichen Computer? 175 00:08:14,620 --> 00:08:17,170 Wir scheinen zu hier einen Schritt zu überspringen. 176 00:08:17,170 --> 00:08:20,210 Nun, der einzige Eingang am Ende hier des Tages, auf meinem Laptop 177 00:08:20,210 --> 00:08:22,060 ist dieser Stromfluss. 178 00:08:22,060 --> 00:08:24,560 Auch wenn es lange gewesen ist Zeit, da Sie darüber nachgedacht, 179 00:08:24,560 --> 00:08:26,580 oder nie darüber nachgedacht, wie Elektrizität funktioniert, 180 00:08:26,580 --> 00:08:30,909 es gibt fließende Elektronen in oder aus, und das ist meine Art von Input. 181 00:08:30,909 --> 00:08:34,659 >> Also, wenn das ist alles, was wir sind hier immer als Eingabe, 182 00:08:34,659 --> 00:08:36,830 Was können wir mit diesen Informationen tun? 183 00:08:36,830 --> 00:08:40,040 Nun, wir könnten denken Sie an eine Null nur ein Fehlen von Elektrizität. 184 00:08:40,040 --> 00:08:42,540 Nichts ist flowinw, ist nichts bewegen, geschieht nichts. 185 00:08:42,540 --> 00:08:44,690 Das ist nur die Standard state-- Null. 186 00:08:44,690 --> 00:08:48,200 Aber wenn es Strom fließt, warum nicht nur willkürlich wir, sondern global 187 00:08:48,200 --> 00:08:50,250 konsequent nennen, dass eine Eins. 188 00:08:50,250 --> 00:08:54,760 >> So einfach durch keine Macht hat, Wir haben eine Null, ja Macht, 189 00:08:54,760 --> 00:08:57,520 wir haben eine one-- keine Macht, ja Macht. 190 00:08:57,520 --> 00:09:01,520 Und auf diese Weise, mit etwas mehr physischen oder elektronischen 191 00:09:01,520 --> 00:09:05,340 Wir beginnen diesen Begriff zu implementieren etwas, entweder als eines oder eine Null. 192 00:09:05,340 --> 00:09:07,230 Tatsächlich konnten wir hier tun es einfach vorbei. 193 00:09:07,230 --> 00:09:10,590 Also hier, ich habe nicht drei, sondern acht Lampen, von denen jede 194 00:09:10,590 --> 00:09:11,810 einen eigenen Schalter hat. 195 00:09:11,810 --> 00:09:15,760 >> Und so, wenn ich wollte zu vertreten die Zahl sieben hier, 196 00:09:15,760 --> 00:09:18,510 Ich könnte sich auf diese drei Glühbirnen. 197 00:09:18,510 --> 00:09:21,470 Und in der Tat, innerhalb von mein Computer ist Millionen, 198 00:09:21,470 --> 00:09:25,650 Milliarden von Dingen, die gerade sind kleiner ist als das, genannt Transistoren, 199 00:09:25,650 --> 00:09:27,330 Schalter, dass Sie nur ein- und ausschalten. 200 00:09:27,330 --> 00:09:30,420 Das sind also big-- relativ big-- Schalter in meinem laptop-- 201 00:09:30,420 --> 00:09:32,150 gibt viele, viele, viele, viele weitere Schalter. 202 00:09:32,150 --> 00:09:35,160 Aber alles, was sie tun, ist genau dass-- drehen etwas auf, schalten Sie etwas ab. 203 00:09:35,160 --> 00:09:38,076 Und als solches kann ein Computer darstellen, mit diesen Millionen oder Milliarden 204 00:09:38,076 --> 00:09:40,480 von Transistoren, Lose und viele Nullen und Einsen. 205 00:09:40,480 --> 00:09:43,160 Und es gibt andere Hardware immer noch, dass ermöglicht das Speichern von Informationen langfristige, 206 00:09:43,160 --> 00:09:45,243 so dass, wenn Sie ziehen die Stecker, müssen Sie es nicht verlieren. 207 00:09:45,243 --> 00:09:46,900 Aber das ist eine Geschichte für einen anderen Tag. 208 00:09:46,900 --> 00:09:51,170 >> Also, was können wir mit diesen Bits tun? 209 00:09:51,170 --> 00:09:54,309 Können wir nur zu nehmen der Druck weg von mich- 210 00:09:54,309 --> 00:09:56,600 könnte jemand kommen wollen hier oben und eine Demo opfern? 211 00:09:56,600 --> 00:09:57,516 Zuerst sah ich diese Hand. 212 00:09:57,516 --> 00:09:58,709 Wie heißen Sie? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID MALAN: Maday, kommen auf. 215 00:10:00,542 --> 00:10:01,250 Schön dich zu treffen. 216 00:10:01,250 --> 00:10:02,390 Maday: Schön, Sie kennenzulernen. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Kommen Sie auf diese Weise. 218 00:10:02,930 --> 00:10:04,182 Ich werde Ihnen nicht die Lippe auf. 219 00:10:04,182 --> 00:10:04,682 Gut. 220 00:10:04,682 --> 00:10:11,090 Also hier haben wir, notice-- ein, two-- das werden wir bearbeiten out-- eins, zwei, vier, 221 00:10:11,090 --> 00:10:13,350 acht, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Das ist Absicht. 223 00:10:14,220 --> 00:10:17,370 Es gibt acht Bits hier-- binäre digits-- Nullen und Einsen. 224 00:10:17,370 --> 00:10:21,460 Und ein bisschen ist ein nützliches Gerät von measure-- nicht als eine Maßeinheit nützlich 225 00:10:21,460 --> 00:10:21,999 auf sich selbst. 226 00:10:21,999 --> 00:10:24,290 Normalerweise wollen Sie mindestens acht dieser Dinge, auch bekannt als 227 00:10:24,290 --> 00:10:24,790 ein Byte. 228 00:10:24,790 --> 00:10:26,230 So haben wir ein Byte von Bits hier. 229 00:10:26,230 --> 00:10:31,130 >> Also, wenn wir wollten Sie herauszufordern mit, zum Beispiel, Rechtschreibung, binär, 230 00:10:31,130 --> 00:10:33,230 dieser Wert hier-- 42. 231 00:10:33,230 --> 00:10:35,140 Möchten Sie einen Stich an, dass zu nehmen? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [unverständlich]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Ja, drücken Sie einfach die kleine weiße Schalter vor. 234 00:10:38,700 --> 00:10:41,290 Und Sie wollen zu buchstabieren aus 42, und zu gewinnen 235 00:10:41,290 --> 00:10:44,061 Stress ist das CS50 wenn Sie Ball bekommen diese. 236 00:10:44,061 --> 00:10:44,560 Gut. 237 00:10:44,560 --> 00:10:46,420 So haben Sie 32. 238 00:10:46,420 --> 00:10:48,430 Wir werden 42 benötigen. 239 00:10:48,430 --> 00:10:51,410 Also das ist ein acht, also das ist 40. 240 00:10:51,410 --> 00:10:54,160 Und excellent-- sehr schön gemacht. 241 00:10:54,160 --> 00:10:55,186 Vielen Dank. 242 00:10:55,186 --> 00:10:58,790 >> [BEIFALL] 243 00:10:58,790 --> 00:10:59,290 Gut. 244 00:10:59,290 --> 00:11:00,623 So haben wir einen weiteren Stress-Ball. 245 00:11:00,623 --> 00:11:03,595 Lassen Sie uns tun dies einmal mehr, wenn wir können. 246 00:11:03,595 --> 00:11:05,368 Ein weiterer Freiwilliger? 247 00:11:05,368 --> 00:11:07,970 Kostenlose Stress-Ball, freies Stress-Ball. 248 00:11:07,970 --> 00:11:08,470 OK. 249 00:11:08,470 --> 00:11:11,640 Hier in der Mitte, tun Sie kommen wollen? 250 00:11:11,640 --> 00:11:14,100 Gut. 251 00:11:14,100 --> 00:11:15,552 Ich kenne. 252 00:11:15,552 --> 00:11:16,360 Da gehen wir. 253 00:11:16,360 --> 00:11:20,818 >> So hier-- die Zahlen kommen nach unten. 254 00:11:20,818 --> 00:11:21,567 Wie heißen Sie? 255 00:11:21,567 --> 00:11:21,984 >> DAVEY: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID MALAN: Davey. 257 00:11:22,820 --> 00:11:23,320 OK. 258 00:11:23,320 --> 00:11:24,810 Kommen Sie nach oben, Davey. 259 00:11:24,810 --> 00:11:25,890 Schön dich zu treffen. 260 00:11:25,890 --> 00:11:28,639 Und was wir gehen zu müssen, spell--, wenn Sie könnten dort verweilen 261 00:11:28,639 --> 00:11:32,810 für nur eine moment-- ist die Nummer 50. 262 00:11:32,810 --> 00:11:36,293 Aber, aber, aber doch, aber diese sind Grundschule Magneten aus einem Grund. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Ich bin gerade ein wenig härter, alles in Ordnung? 265 00:11:43,327 --> 00:11:44,160 Es gibt noch acht. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Gut. 268 00:11:47,320 --> 00:11:48,486 Also, was haben wir da? 269 00:11:48,486 --> 00:11:51,356 Wir haben 32. 270 00:11:51,356 --> 00:11:54,344 Nett. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 gibt uns 48-- so nah. 272 00:11:58,610 --> 00:12:00,390 Und wunderbar. 273 00:12:00,390 --> 00:12:02,831 Herzlichen Glückwunsch an Davey als auch. 274 00:12:02,831 --> 00:12:05,720 >> [BEIFALL] 275 00:12:05,720 --> 00:12:06,516 >> Gut. 276 00:12:06,516 --> 00:12:09,390 So können wir dies tun, den ganzen Tag lang, und es wird nicht allzu viel mehr 277 00:12:09,390 --> 00:12:10,800 interessanter und anspruchsvoll. 278 00:12:10,800 --> 00:12:13,250 Aber das ist wirklich der point-- ist relativ einfach, wie 279 00:12:13,250 --> 00:12:16,930 es ist, am Ende des Tages, was für ein Computer Informationen zu speichern, 280 00:12:16,930 --> 00:12:21,740 zum Speichern von Eingängen und schließlich speichern oder diese Ausgaben darstellen. 281 00:12:21,740 --> 00:12:23,750 Aber Zahlen allein sind nicht alles, was interessant. 282 00:12:23,750 --> 00:12:26,069 >> Also Menschen, vor einigen Jahren, entschieden, weißt du was? 283 00:12:26,069 --> 00:12:27,860 Es wäre schön, wenn Computer waren nicht nur 284 00:12:27,860 --> 00:12:31,030 Rechner für die Arithmetik Operationen, konnte aber tatsächlich 285 00:12:31,030 --> 00:12:35,209 Dinge tun, wie Textverarbeitung, oder E-Mail, oder modernere Inkarnationen 286 00:12:35,209 --> 00:12:36,500 dieser Arten von Technologien. 287 00:12:36,500 --> 00:12:40,680 Und so entschied sich die Welt willkürlich, sondern universell, 288 00:12:40,680 --> 00:12:44,380 dass, wenn Sie wollen, um die Hauptstadt zu speichern Buchstabe A in einem Computer, weißt du was? 289 00:12:44,380 --> 00:12:47,730 Lassen Sie uns einfach alle zu speichern zustimmen einige Muster von Nullen und ones-- 290 00:12:47,730 --> 00:12:52,422 bits--, die letztlich steht für die Dezimalzahl 65. 291 00:12:52,422 --> 00:12:53,630 Wir werden einfach alle einig. 292 00:12:53,630 --> 00:12:56,620 >> 66 darstellen würde B, 67 wäre für C, 293 00:12:56,620 --> 00:13:00,210 und es gibt Trauben von anderen Mustern von Nullen und Einsen, oder die zugrunde liegenden Zahlen, 294 00:13:00,210 --> 00:13:02,224 das würde bedeuten anderen Buchstaben noch. 295 00:13:02,224 --> 00:13:04,390 Also, wenn Sie Art von geistig absorbieren diese für einen Moment, 296 00:13:04,390 --> 00:13:10,900 Ich habe bis absichtlich A durch I, wobei H a 72 und I 73 ist. 297 00:13:10,900 --> 00:13:15,830 Wenn ein Computer dann, im Rahmen der ein Textverarbeitungsprogramm oder eine E-Mail, 298 00:13:15,830 --> 00:13:19,620 unter der Haube aufgedeckt zu haben, diese Muster von bits-- Muster 299 00:13:19,620 --> 00:13:22,500 von Bits, die 72, dann 73, dann 33-- 300 00:13:22,500 --> 00:13:26,640 was könnte dies in diesem Programm buchstabieren? 301 00:13:26,640 --> 00:13:28,150 >> So hallo, und dann so etwas. 302 00:13:28,150 --> 00:13:31,460 Wir wissen nicht unbedingt, aber in der Tat 33-- nicht auf der Karte earlier-- 303 00:13:31,460 --> 00:13:33,170 war einfach ein Ausrufezeichen. 304 00:13:33,170 --> 00:13:38,870 So betrug 72 H, 73 I, 33 passiert, ein Ausrufezeichen, still zu sein. 305 00:13:38,870 --> 00:13:41,719 Aber das ist alles schön und gut, und in der Tat heutzutage anstatt 306 00:13:41,719 --> 00:13:43,760 Verwenden Sie nur sieben oder acht Bits, dank etwas 307 00:13:43,760 --> 00:13:46,530 Unicode genannt, im Gegensatz in den Tag zu Ascii zurück, 308 00:13:46,530 --> 00:13:50,010 wir können tatsächlich repräsentieren noch mehr interessante Charaktere als nur 309 00:13:50,010 --> 00:13:52,980 diese ursprünglichen englischen voreingenommen Buchstaben. 310 00:13:52,980 --> 00:13:56,030 Aber wir können auch selbst vertreten ordentlicheres Dinge wie Farben. 311 00:13:56,030 --> 00:13:59,750 >> Wenn Sie jemals das Akronym gehört RGB, rot, grün, blau, dass 312 00:13:59,750 --> 00:14:03,510 nur bedeutet, dass ein Computer verwendet typischerweise drei Sätze von bits-- 313 00:14:03,510 --> 00:14:06,760 eine bestimmte Anzahl von Bits, die darstellen, eine Zahl, wie viel rot Sie wollen, 314 00:14:06,760 --> 00:14:08,940 ein weiterer Satz von Bits, die für wie viel grün Sie wollen, 315 00:14:08,940 --> 00:14:11,430 und ein anderer Satz Nummer für wie viel blau Sie wollen. 316 00:14:11,430 --> 00:14:14,457 So eine große Zahl bedeutet, viele rot, kleine Zahl bedeutet, dass keine rot. 317 00:14:14,457 --> 00:14:16,290 Und so sind diese Art der mittleren Werte hier. 318 00:14:16,290 --> 00:14:20,180 >> Also gib mir etwas rot, gib mir etwas grün, und gib mir ein wenig Blau. 319 00:14:20,180 --> 00:14:24,260 Und wenn Sie diese drei Farben mischen Farb zusammen, in diesem Fall 320 00:14:24,260 --> 00:14:26,850 Sie erhalten diese trüben Schatten von gelb oder braun. 321 00:14:26,850 --> 00:14:32,330 Aber das Muster von acht Plus acht und eight-- so 24 bits-- 322 00:14:32,330 --> 00:14:36,550 von links nach rechts ist, wie ein Computer bedeuten würde, dass bestimmte Farbe. 323 00:14:36,550 --> 00:14:38,090 Nun ist dies nur ein Punkt auf einem Bildschirm. 324 00:14:38,090 --> 00:14:42,230 Wenn man sich wirklich nah an Ihrem Fernseher Ihre Computer, werden Sie Punkte oder Pixel zu sehen. 325 00:14:42,230 --> 00:14:45,420 Und wenn Sie ein ganzes Raster von Pixel, horizontal und vertikal, 326 00:14:45,420 --> 00:14:46,630 Sie haben Bilder. 327 00:14:46,630 --> 00:14:49,029 Und dann, wenn Sie nehmen ein Bild und dann waschen 328 00:14:49,029 --> 00:14:52,070 zeigen Sie sich ein anderes Bild, ein anderes Bild, ein anderes Bild, ein anderes Bild, 329 00:14:52,070 --> 00:14:54,760 sehr schnell, haben Sie natürlich Filme. 330 00:14:54,760 --> 00:14:56,109 >> Und so bemerken, wo wir angefangen haben. 331 00:14:56,109 --> 00:14:57,650 Wir begannen mit diesen Nullen und Einsen. 332 00:14:57,650 --> 00:15:00,570 Wir arbeiteten von dort in Dezimalzahlen Zahlen, wie wir sie vertreten. 333 00:15:00,570 --> 00:15:02,070 Jetzt haben wir die Buchstaben des Alphabets. 334 00:15:02,070 --> 00:15:05,664 Aber auch in anderen Kontexten warten, können wir verwenden ein paar mehr Bits und repräsentieren Farben. 335 00:15:05,664 --> 00:15:07,830 Sobald Sie das haben Fähigkeit, Farben zu repräsentieren, 336 00:15:07,830 --> 00:15:11,200 Sie haben die Fähigkeit, zu vertreten Fotos und animierte Gifs 337 00:15:11,200 --> 00:15:13,780 und andere solche Zeichen auf dem Bildschirm. 338 00:15:13,780 --> 00:15:17,160 Und wenn Sie haben eine ganze Reihe von Bilder vom menschlichen fliegen auf einmal, 339 00:15:17,160 --> 00:15:21,480 es sieht aus wie bewegte Bilder, und so erhalten Sie auch Videos. 340 00:15:21,480 --> 00:15:23,460 >> Also mit diesen sehr einfache Primitive tun wir 341 00:15:23,460 --> 00:15:28,070 haben die Art und Weise der Darstellung schließlich alle diese Formen von Medien. 342 00:15:28,070 --> 00:15:30,450 Und wir haben wieder abstrahiert und immer wieder, bis wir 343 00:15:30,450 --> 00:15:33,467 erhalten von der untersten Ebene auf dieser höchsten Stufe. 344 00:15:33,467 --> 00:15:35,550 So gibt, dass uns diese allgemeine Idee der Abstraktion. 345 00:15:35,550 --> 00:15:36,990 Aber wir hier begonnen. 346 00:15:36,990 --> 00:15:38,790 >> Hier nun, könnten wir repräsentieren in einem Computer 347 00:15:38,790 --> 00:15:41,920 unsere Eingänge mit Nullen und Einsen, unsere Ausgaben in Nullen und Einsen, 348 00:15:41,920 --> 00:15:43,640 aber was geht in der Box? 349 00:15:43,640 --> 00:15:46,080 Das ist, wo Computer Wissenschaft interessant wird. 350 00:15:46,080 --> 00:15:49,770 Das ist, wo Sie tatsächlich bringen Sie Ihre eigenen Geist zu tragen, Probleme zu lösen. 351 00:15:49,770 --> 00:15:52,590 Wir können nun festlegen, für die Rest des Semesters, ja. 352 00:15:52,590 --> 00:15:53,870 Ich weiß, wie binäre funktioniert. 353 00:15:53,870 --> 00:15:57,942 Ich erinnere mich, wie Ascii oder Unicode-- die Abbildung Werke letters--. 354 00:15:57,942 --> 00:15:59,650 Und es steht sicher dass wir an die Vernunft 355 00:15:59,650 --> 00:16:03,470 repräsentieren Rot und Grün könnte und Blau und repräsentieren als auch Multimedia. 356 00:16:03,470 --> 00:16:05,390 Aber das ist die interessante Sachen. 357 00:16:05,390 --> 00:16:09,790 Dies ist, was jemand macht der Lage, Probleme zu lösen. 358 00:16:09,790 --> 00:16:11,980 >> Und ein solches Problem, wir gerne tun, in der Tat, 359 00:16:11,980 --> 00:16:15,345 nimmt die Teilnahme, oder tun dies algorithmisch. 360 00:16:15,345 --> 00:16:16,470 Und wieder, ich könnte dies tun. 361 00:16:16,470 --> 00:16:19,580 Ich könnte man tun, zwei, drei, vier fünf, sechs, sieben, acht neun. 362 00:16:19,580 --> 00:16:21,520 Und ich konnte es schreiben nach unten Überblick zu behalten. 363 00:16:21,520 --> 00:16:23,769 Aber das ist nur, wie ich stellen die Informationen. 364 00:16:23,769 --> 00:16:27,550 Oder ich könnte dies tun faster-- zwei, vier, sechs, acht, zehn, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- fühlt es sich zweimal, wie so schnell, aber es ist immer noch 366 00:16:30,380 --> 00:16:32,050 geht eine ganze Menge Zeit in Anspruch nehmen. 367 00:16:32,050 --> 00:16:35,990 >> Aber es stellt sich heraus, wenn wir noch nutzen weitere resource-- und zwar Computer 368 00:16:35,990 --> 00:16:38,940 in diesen Tagen haben mehrere CPUs oder Gehirn. 369 00:16:38,940 --> 00:16:41,970 Es stellt sich heraus Computer können tun viele Dinge auf einmal, 370 00:16:41,970 --> 00:16:44,460 und in der Tat wir, in diesem Raum, darstellen könnte genau dieses. 371 00:16:44,460 --> 00:16:47,130 >> So ist es ein wenig sozial unbeholfen, aber wenn man es mir Humor 372 00:16:47,130 --> 00:16:51,550 nur für einen Prozess in drei Schritten, lassen fragen mich alle an Ort und Stelle gibt es nur 373 00:16:51,550 --> 00:16:54,640 stehen für einen Moment auf. 374 00:16:54,640 --> 00:16:57,380 Aufstehen. 375 00:16:57,380 --> 00:17:01,580 Also denken Sie an sich selbst, die Anzahl one--, so dass jeder in diesem Raum, 376 00:17:01,580 --> 00:17:05,010 mit Ausnahme der Personen, die nicht oblige, denken die Nummer eins. 377 00:17:05,010 --> 00:17:06,510 Damit ist Ihre Nummer jetzt. 378 00:17:06,510 --> 00:17:09,399 Das ist der erste Schritt oder als Informatiker oder ein Programmierer 379 00:17:09,399 --> 00:17:11,827 würde in der Regel tun, wir gehen beginnen bei Null zu zählen. 380 00:17:11,827 --> 00:17:14,410 Wenn die kleinste Zahl können wir vertreten mit den Glühbirnen 381 00:17:14,410 --> 00:17:17,410 Null ist, nur um sie zu verlassen alle weg, könnte ich auch nur 382 00:17:17,410 --> 00:17:19,271 Start von der Zählung Null ist, statt einer. 383 00:17:19,271 --> 00:17:21,020 Und so ist das, was Informatiker tun. 384 00:17:21,020 --> 00:17:23,750 So Null Schritt, aufstehen und denken Sie an die Nummer eins. 385 00:17:23,750 --> 00:17:26,339 Der nächste Schritt ist this-- pair off mit jemandem Stehen 386 00:17:26,339 --> 00:17:27,660 und fügen Sie Ihre Zahlen zusammen. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Wunderbar. 389 00:17:32,850 --> 00:17:37,640 >> Also in diesem Moment in der Zeit, buchstäblich jeder teilnehmenden 390 00:17:37,640 --> 00:17:41,930 denkt an die Nummer 2, mit der Ausnahme für eine ungerade Person, wenn wir 391 00:17:41,930 --> 00:17:43,450 eine ungerade Anzahl von Personen im Raum. 392 00:17:43,450 --> 00:17:50,640 Und nun der dritte Schritt ist hier los zu sollte this-- von euch setzen. 393 00:17:50,640 --> 00:17:54,490 Einer von euch hinsetzen sollte, und wenn Sie still stehen, 394 00:17:54,490 --> 00:17:56,590 gehen Sie einen Schritt zurück. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Gut. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Gut. 399 00:19:01,650 --> 00:19:03,880 Also immer mehr Menschen sitzen sollte nach unten. 400 00:19:03,880 --> 00:19:08,280 Beachten Sie, dass diese induzierte hat ein eine Art Zyklus loop--. 401 00:19:08,280 --> 00:19:11,983 Einige von euch sollten ungeschickt geklebt werden, hin und her zwischen dem Schritt ein 402 00:19:11,983 --> 00:19:14,180 und zwei, eins und zwei, eins und zwei. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Das ist ok. 405 00:19:21,810 --> 00:19:22,630 Unser erster Fehler. 406 00:19:22,630 --> 00:19:24,740 Wir werden damit umgehen. 407 00:19:24,740 --> 00:19:25,320 Gut. 408 00:19:25,320 --> 00:19:27,370 Lassen Sie mich versuchen, die Dinge voranzutreiben entlang. 409 00:19:27,370 --> 00:19:31,454 >> In der Theorie nur eine Person steht wie jeder weiter weg zu koppeln. 410 00:19:31,454 --> 00:19:33,870 Aber lassen Sie mich die Dinge zu beschleunigen mit den Menschen stehen noch aus. 411 00:19:33,870 --> 00:19:35,480 Welche Nummer denken Sie? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 OK. 414 00:19:36,570 --> 00:19:37,820 Gehen Sie voran und setzen Sie sich. 415 00:19:37,820 --> 00:19:39,190 Ihr Jungs stehen noch. 416 00:19:39,190 --> 00:19:42,130 Wer steht immer noch? 417 00:19:42,130 --> 00:19:45,240 Welche Nummer denken Sie? 418 00:19:45,240 --> 00:19:46,160 OK. 419 00:19:46,160 --> 00:19:47,900 >> Also werden wir wieder zu euch kommen. 420 00:19:47,900 --> 00:19:49,630 In der Rückseite? 421 00:19:49,630 --> 00:19:50,790 Was ist das? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK jemand anderes oben top-- ja? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 OK. 426 00:19:58,300 --> 00:20:02,780 Hier drüben auf meinem right-- hier oben? 427 00:20:02,780 --> 00:20:06,820 132, sehr schön. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> OK. 430 00:20:08,990 --> 00:20:10,031 Und wer steht immer noch? 431 00:20:10,031 --> 00:20:11,000 Hier drüben? 432 00:20:11,000 --> 00:20:14,520 46, sehr schön. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Ich kann nicht viel länger blockieren. 435 00:20:18,220 --> 00:20:20,520 Ja? 436 00:20:20,520 --> 00:20:22,490 30, nett. 437 00:20:22,490 --> 00:20:24,120 Hier drüben? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Und ich denke, dass jeder ist außer euch, kein Druck. 441 00:20:30,920 --> 00:20:32,860 Oh, Moment mal. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Nur acht. 445 00:20:38,281 --> 00:20:38,780 OK. 446 00:20:38,780 --> 00:20:41,030 Nur acht. 447 00:20:41,030 --> 00:20:42,580 Hier unten? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Dies ist die schlimmste Umsetzung dieses Algorithmus je. 454 00:20:54,690 --> 00:20:55,190 OK. 455 00:20:55,190 --> 00:20:59,760 So jemand anderes? 456 00:20:59,760 --> 00:21:00,421 Irgendjemand anderes? 457 00:21:00,421 --> 00:21:00,920 OK. 458 00:21:00,920 --> 00:21:03,300 Einer noch. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 OK. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Gut. 463 00:21:06,010 --> 00:21:09,070 Also, wenn ich jemand nicht verpasst haben, in die Blendung hier, wenn ich drücken Sie die Eingabetaste, 464 00:21:09,070 --> 00:21:13,091 wir werden sehen, algorithmisch, die Gesamtzahl der Menschen in Sanders. 465 00:21:13,091 --> 00:21:16,340 Weil wieder, es ist, als ob jeder wie Sie setzte sich, übergeben Sie Ihre Nummer aus 466 00:21:16,340 --> 00:21:19,215 an jemand anderen, jemand anderes, an jemand anderen, so dass in der Theorie, 467 00:21:19,215 --> 00:21:22,304 am Ende, nur eine peinliche Person sollte stehen gelassen werden. 468 00:21:22,304 --> 00:21:22,970 Aber das ist in Ordnung. 469 00:21:22,970 --> 00:21:24,290 Wir beschleunigt Dinge manuell auf. 470 00:21:24,290 --> 00:21:27,590 Es ist besonders schwer zu sehen, in diesem besonderen Raum. 471 00:21:27,590 --> 00:21:34,200 >> Und die Gesamtzahl der Personen wir denken, dass es hier ist 546. 472 00:21:34,200 --> 00:21:37,330 Die Gesamtzahl Ich war handed durch die Lehre Stipendiaten, 473 00:21:37,330 --> 00:21:40,660 wer es getan hat, die alte langsame Art der Schule war 820. 474 00:21:40,660 --> 00:21:43,660 >> [LACHEN] 475 00:21:43,660 --> 00:21:47,170 >> [BEIFALL] 476 00:21:47,170 --> 00:21:48,670 >> Das ist ok. 477 00:21:48,670 --> 00:21:50,740 So sicher dann gibt es diese Fehler. 478 00:21:50,740 --> 00:21:51,460 Und das ist in Ordnung. 479 00:21:51,460 --> 00:21:53,810 Und so denken Sie zurück auf diese das erste Mal etwas 480 00:21:53,810 --> 00:21:55,420 Sie schreiben nicht unbedingt funktioniert. 481 00:21:55,420 --> 00:21:57,620 Das hat mir auch hier passiert ist. 482 00:21:57,620 --> 00:22:00,844 Aber lassen Sie jetzt uns überlegen, wie wir könnten gelten diese gleiche Idee zu etwas 483 00:22:00,844 --> 00:22:03,760 Sie könnten vor gesehen haben, die ist diese alte Schule Technologie hier-- 484 00:22:03,760 --> 00:22:05,130 ein wirklich großes Telefonbuch. 485 00:22:05,130 --> 00:22:09,380 Und angenommen, dass dieses Telefonbuch hat 1.000 Seiten und 1.000 Namen 486 00:22:09,380 --> 00:22:11,360 und Zahlen alphabetisch im Inneren. 487 00:22:11,360 --> 00:22:14,860 >> Nun, wir könnten Art anwenden, eine ähnliche Idee zu diesem sehr körperliches Problem, 488 00:22:14,860 --> 00:22:16,270 mit mir gerade. 489 00:22:16,270 --> 00:22:18,810 Ich nur irgendwie betrogen von allen von Ihnen nutzen 490 00:22:18,810 --> 00:22:23,240 mit vielen, vielen verschiedenen CPUs oder Gehirne einige Algorithmus ausführt. 491 00:22:23,240 --> 00:22:25,440 Aber wenn es nur wenig ist alt mir, kann ich immer noch 492 00:22:25,440 --> 00:22:29,630 nutzen das gleiche Wesen einer Idee teilen und erobern das Problem 493 00:22:29,630 --> 00:22:32,970 wieder und wieder, wobei die Hälfte von euch, die Hälfte von euch, die Hälfte von euch, die Hälfte von euch, 494 00:22:32,970 --> 00:22:35,830 theoretisch gehalten sitzen, bis wir links, theoretisch, 495 00:22:35,830 --> 00:22:36,990 mit nur einer Person. 496 00:22:36,990 --> 00:22:39,810 >> Also in diesem alten Schule technology-- wir nicht 497 00:22:39,810 --> 00:22:43,030 müssen diese map-- diese alte Schule Technologie, 498 00:22:43,030 --> 00:22:47,300 wir beginnen könnte für jemanden, wie Mike Smith, eine Seite zu einem Zeitpunkt. 499 00:22:47,300 --> 00:22:49,410 Und ich sehe, dass nein, Mike ist nicht hier. 500 00:22:49,410 --> 00:22:51,110 Ich bin immer noch in der A-Seite. 501 00:22:51,110 --> 00:22:53,900 Schließlich finde ich mich in der B-Seite. 502 00:22:53,900 --> 00:22:56,910 Und das ist ein algorithm-- Schritt-für-Schritt-Anleitung. 503 00:22:56,910 --> 00:22:59,890 Beginnen Sie am Anfang und eine Seite zu einer Zeit, suchen Sie nach Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Ist das correct-- diese Algorithmus oder Ansatz? 505 00:23:03,410 --> 00:23:04,550 >> Ja, es ist richtig. 506 00:23:04,550 --> 00:23:06,840 Wenn Mike ist hier, schließlich Ich werde mit ihm zu bekommen. 507 00:23:06,840 --> 00:23:08,139 Aber es ist nicht effizient. 508 00:23:08,139 --> 00:23:09,180 Es ist natürlich sehr langsam. 509 00:23:09,180 --> 00:23:11,340 So kann ich nutzen, um die gleiche twosies nähern. 510 00:23:11,340 --> 00:23:15,350 Ich kann Art von zwei tun, vier, sechs, acht, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Es ist doppelt so schnell. 512 00:23:16,330 --> 00:23:18,290 Ich werde Mike zu bekommen schneller, wenn er da ist. 513 00:23:18,290 --> 00:23:20,770 Ist es richtig? 514 00:23:20,770 --> 00:23:22,320 Ja, aber ich hörte ein little-- Nr. 515 00:23:22,320 --> 00:23:24,200 Nun hörte ich eine Nr. 516 00:23:24,200 --> 00:23:24,700 Ja. 517 00:23:24,700 --> 00:23:26,190 Es gibt möglicherweise einen Fehler. 518 00:23:26,190 --> 00:23:29,374 Vielleicht Mike bekommt nur aus Versehen zwischen zwei Seiten eingeklemmt, 519 00:23:29,374 --> 00:23:31,290 weil ich fliege durch diese zwei Stufen auf einmal. 520 00:23:31,290 --> 00:23:33,580 So zumindest müssen wir einige Art der bedingten fix. 521 00:23:33,580 --> 00:23:35,330 Ich muss sagen, hey, wenn traf ich jemanden, dessen 522 00:23:35,330 --> 00:23:39,190 Name beginnt mit einem T anstelle eines S, Ich doppelt besser zurück mindestens eine Seite. 523 00:23:39,190 --> 00:23:40,767 So Buggy auf den ersten, aber fixierbar. 524 00:23:40,767 --> 00:23:43,850 Aber keiner von uns gehen zu suchen Mike Smith durch eine 1000-Seite Telefon 525 00:23:43,850 --> 00:23:45,290 eine Seite zu einem Zeitpunkt buchen. 526 00:23:45,290 --> 00:23:48,486 Was ist ein normaler Mensch tun? 527 00:23:48,486 --> 00:23:50,860 Sie gehen zu den S ist zu gehen, wenn Sie wüssten, wo die S ist. 528 00:23:50,860 --> 00:23:54,230 Sie könnten etwa in die Mitte gehen oder leicht gegen Ende schief. 529 00:23:54,230 --> 00:23:56,850 Und ich sehe hier unten und Ich bin in der M-Seite. 530 00:23:56,850 --> 00:23:58,952 Aber was wissen Sie über dieses Problem ist jetzt, 531 00:23:58,952 --> 00:24:02,160 dass wir nicht unbedingt wussten vor mit allen von uns zählen nur uns selbst 532 00:24:02,160 --> 00:24:03,030 äquivalent? 533 00:24:03,030 --> 00:24:06,010 Nun, Mike ist klar gehen in dieser Hälfte des Buches zu sein 534 00:24:06,010 --> 00:24:07,920 wenn er hier überhaupt ist, weil es sortiert. 535 00:24:07,920 --> 00:24:10,160 >> Und so können Sie sehr dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Keuchend] 537 00:24:11,250 --> 00:24:12,300 >> Ich kenne. 538 00:24:12,300 --> 00:24:16,940 >> [BEIFALL] 539 00:24:16,940 --> 00:24:19,450 >> Es ist eigentlich wirklich einfach, wenn Sie tun es dort den Rücken hinunter. 540 00:24:19,450 --> 00:24:22,070 Aber Sie können dann werfen Hälfte des Problems entfernt. 541 00:24:22,070 --> 00:24:25,950 Nun, ich bin mit dem gleichen problem-- links Mike Smith in einem Telefon finden book-- 542 00:24:25,950 --> 00:24:29,610 aber jetzt ist das Telefonbuch beginnt bei M und geht bis Z, aber es ist halb so groß. 543 00:24:29,610 --> 00:24:30,890 >> Aber das ist, was beeindruckend ist. 544 00:24:30,890 --> 00:24:34,170 Genau wie in der Theorie, Jungs, wenn Sie alle saßen nur die Hälfte zu einer Zeit nach unten, 545 00:24:34,170 --> 00:24:37,150 das Problem bekam halb so groß, halb so groß, wieder und wieder. 546 00:24:37,150 --> 00:24:40,260 So wurde dieses Problem geworden die gleiche Problem, aber nur halb so groß. 547 00:24:40,260 --> 00:24:42,670 Jetzt ist es ein 250 Seiten Problem. 548 00:24:42,670 --> 00:24:45,340 Sobald ich merke, oh, ich bin im T-Abschnitt aus Versehen. 549 00:24:45,340 --> 00:24:46,590 Ich habe zu weit gegangen. 550 00:24:46,590 --> 00:24:48,500 Ich kann, dass die Hälfte werfen des Telefonbuchs entfernt. 551 00:24:48,500 --> 00:24:50,410 Nun, ich bin bis auf eine Quartal des Problems. 552 00:24:50,410 --> 00:24:53,910 >> Und Sie können wiederholen, wiederholen, wiederholen, bis in der Theorie, du bist 553 00:24:53,910 --> 00:24:55,460 mit nur einer Seite links. 554 00:24:55,460 --> 00:24:59,010 Und wenn Mike auf dieser Seite ist, Ich kann jetzt dieses Problem zu lösen. 555 00:24:59,010 --> 00:25:00,810 Aber wie schnell habe ich es lösen? 556 00:25:00,810 --> 00:25:05,420 Im ersten Fall, es hat mich wie vielleicht 1000 Schritte Mike Smith zu finden. 557 00:25:05,420 --> 00:25:09,260 Es könnte genommen mich- Ich nahm das Telefonbuch nach oben 558 00:25:09,260 --> 00:25:11,440 und ich begann, mich eine Seite zu einem Zeitpunkt, 559 00:25:11,440 --> 00:25:13,480 und Mike könnte 1000 Seiten später sein. 560 00:25:13,480 --> 00:25:16,020 >> Zweiter Ansatz vielleicht nimmt mich 500 Stufen, 561 00:25:16,020 --> 00:25:17,960 weil ich fliege durch zwei zu einer Zeit. 562 00:25:17,960 --> 00:25:21,082 Und der dritte Ansatz aber, es ist besonders leistungsstark. 563 00:25:21,082 --> 00:25:23,790 Aber lassen Sie uns überlegen, was wir eigentlich hat mit diesem dritten Ansatz. 564 00:25:23,790 --> 00:25:27,590 Ich werde, was ich nenne nur diese Aussagen hier zu einem Zeitpunkt ein. 565 00:25:27,590 --> 00:25:28,560 Pick-up ein Telefonbuch. 566 00:25:28,560 --> 00:25:30,130 Öffnen Sie in die Mitte des Telefonbuchs. 567 00:25:30,130 --> 00:25:31,419 Schauen Sie sich Namen. 568 00:25:31,419 --> 00:25:33,960 Und dann werden die Dinge ein wenig intellektuell interessant, 569 00:25:33,960 --> 00:25:35,170 wenn noch einfach. 570 00:25:35,170 --> 00:25:38,350 Wenn Smith gehört zu den Namen auf dieser aktuellen Seite, 571 00:25:38,350 --> 00:25:40,170 dann tun bedingt etwas. 572 00:25:40,170 --> 00:25:41,840 Es ist wie eine Gabel in der Straße. 573 00:25:41,840 --> 00:25:42,660 Rufen Sie Mike. 574 00:25:42,660 --> 00:25:44,930 Wenn Mike ist unter den Namen auf dieser Seite, genannt Mike. 575 00:25:44,930 --> 00:25:49,720 Aber nur tun Linie vier, wenn Linie Baum, wenn man so will, ist wahr. 576 00:25:49,720 --> 00:25:51,590 Die Antwort auf diese Frage lautet: Ja. 577 00:25:51,590 --> 00:25:55,520 >> Else, wenn Smith ist früher in der book-- in anderen Worten, wenn ich in der M Abschnitt bin 578 00:25:55,520 --> 00:25:58,540 und ich bin auf der Suche nach jemandem zu die linke, was dann soll ich tun 579 00:25:58,540 --> 00:26:00,300 etwas ist sehr ähnlich. 580 00:26:00,300 --> 00:26:03,440 Dann sollte ich bis zur Mitte öffnen der linken Hälfte des Buches. 581 00:26:03,440 --> 00:26:07,930 So gehen Sie nach links, und dann gehen Sie zurück zu Schritt zwei. 582 00:26:07,930 --> 00:26:09,290 Schauen Sie sich dort die Namen. 583 00:26:09,290 --> 00:26:12,779 >> Also mit anderen Worten, das gleiche tun, aber auf ein Problem, das ist halbiert. 584 00:26:12,779 --> 00:26:13,570 Sie wissen, was sonst? 585 00:26:13,570 --> 00:26:16,470 Wenn Smith ist später im Buch basierend auf der Seite an ich bin auf der Suche, 586 00:26:16,470 --> 00:26:18,790 offen Mitte der rechte Hälfte des Buches 587 00:26:18,790 --> 00:26:22,050 und dann gehen Sie wieder zurück Schritt zwei, else-- 588 00:26:22,050 --> 00:26:24,000 es gibt hier eine vierte Möglichkeit. 589 00:26:24,000 --> 00:26:28,830 Mike hier oder nach links oder nach rechts, oder nicht. 590 00:26:28,830 --> 00:26:30,570 Und hier haben wir das besser berücksichtigen. 591 00:26:30,570 --> 00:26:33,360 Und in der Tat, wenn Sie jemals hatte Ihr Computer nur auf Sie abstürzen, 592 00:26:33,360 --> 00:26:36,822 das ist manchmal, jedoch nicht immer, die Ergebnis von nur einem menschlichen Programmierer nicht 593 00:26:36,822 --> 00:26:39,280 Realisierung, oh schießen, gibt es tatsächlich das vierte Szenario. 594 00:26:39,280 --> 00:26:41,650 Und wenn Sie nicht schreiben Code dieses Szenario zu behandeln, 595 00:26:41,650 --> 00:26:43,220 manchmal weiß man nicht, was könnte der Computer tun. 596 00:26:43,220 --> 00:26:44,770 Und in der Tat könnte ein Programm zum Absturz bringen. 597 00:26:44,770 --> 00:26:47,550 >> Aber in diesem Fall, dachte ich, darüber, und ich sagte, sonst verlassen, 598 00:26:47,550 --> 00:26:49,850 denn das ist die vierte logische mögliches Szenario. 599 00:26:49,850 --> 00:26:51,950 Jetzt wollen wir nur noch hinzufügen einige Wortschatz, so dass wir 600 00:26:51,950 --> 00:26:55,320 kann beginnen um Bedingungen zu werfen, dass sind ansonsten ziemlich intuitiv. 601 00:26:55,320 --> 00:26:57,870 Alle Dinge, ich habe gerade in gelb hier hervorgehoben, 602 00:26:57,870 --> 00:27:00,140 Ich werde einfach die Funktionen oder Prozeduren. 603 00:27:00,140 --> 00:27:01,590 Sie sind nur eine Art von Aktionen. 604 00:27:01,590 --> 00:27:04,900 So holen, offen zu suchen, an, rufen, offen, offen, 605 00:27:04,900 --> 00:27:09,170 quit-- diese nur Aktionen sind, oder wir werden nennen sie mehr formal, Funktionen. 606 00:27:09,170 --> 00:27:11,410 >> Inzwischen nun in gelb, Ich habe Dinge hervorgehoben 607 00:27:11,410 --> 00:27:14,084 dass-- wir einfach lostelefonieren sie Bedingungen oder Zweige. 608 00:27:14,084 --> 00:27:16,750 Dies sind Entscheidungspunkte, an denen Sie könnten auf diese Weise, auf diese Weise gehen, 609 00:27:16,750 --> 00:27:18,100 oder eine andere Richtung noch. 610 00:27:18,100 --> 00:27:19,430 So werden diejenigen Bedingungen sein. 611 00:27:19,430 --> 00:27:20,930 Und jetzt ist dieses ein wenig schicker. 612 00:27:20,930 --> 00:27:24,600 Lassen Sie uns diese Fragen rufen Boolesche Ausdrücke, 613 00:27:24,600 --> 00:27:26,530 nachdem jemand mit einem Nachnamen Bool. 614 00:27:26,530 --> 00:27:28,340 >> Und ein boolescher Ausdruck ist nur etwas 615 00:27:28,340 --> 00:27:30,290 das ist entweder wahr oder falsch, ja oder nein. 616 00:27:30,290 --> 00:27:35,870 So ist es die Frage, deren Antwort Sie kümmern uns um, so dass in einem Zustand, 617 00:27:35,870 --> 00:27:39,210 machen eine decision-- eine Antwort zurück, und dann gehen Sie nach links oder rechts, oder etwas 618 00:27:39,210 --> 00:27:40,450 ganz anderes. 619 00:27:40,450 --> 00:27:42,860 >> Und dann schließlich diese hier-- Linien zurück 620 00:27:42,860 --> 00:27:44,737 zwei Schritt zurück Schritt two-- wir konnten 621 00:27:44,737 --> 00:27:46,320 diese Idee auf verschiedene Weise implementieren. 622 00:27:46,320 --> 00:27:49,028 Und dann die von Ihnen mit Programmiererfahrung getan haben könnte 623 00:27:49,028 --> 00:27:50,670 oder tun dies anders vorstellen. 624 00:27:50,670 --> 00:27:53,170 Aber für die Zwecke von heute, ist es nur die Idee, was zählt. 625 00:27:53,170 --> 00:27:55,400 Dies veranlasst, was wir werden in der Regel rufen 626 00:27:55,400 --> 00:28:00,110 ein eine Art Zyklus loop--, weil es macht mich wieder etwas tun. 627 00:28:00,110 --> 00:28:03,340 >> So, jetzt lassen Sie uns einfach betrachten wie gut dieses Algorithmus ist. 628 00:28:03,340 --> 00:28:03,899 Es ist richtig. 629 00:28:03,899 --> 00:28:06,940 Wenn Mike in dem Buch, es ist eines der diese vier scenarios-- immer wieder 630 00:28:06,940 --> 00:28:08,023 und wieder, wir werden ihn finden. 631 00:28:08,023 --> 00:28:08,890 Aber wie gut ist es? 632 00:28:08,890 --> 00:28:10,150 Nun, wir haben nicht werden hier auch formal. 633 00:28:10,150 --> 00:28:12,066 Aber lassen Sie uns einfach plotten etwas, x und y, zu erhalten, 634 00:28:12,066 --> 00:28:14,470 ein Gefühl für die Form dieses Problem. 635 00:28:14,470 --> 00:28:17,160 >> Auf der x-Achse ist hier die Größe meines Problems. 636 00:28:17,160 --> 00:28:20,256 Und sie eine y-Achse hier wird die Zeit zu lösen. 637 00:28:20,256 --> 00:28:21,630 Vielleicht ist dies der Anzahl der Seiten. 638 00:28:21,630 --> 00:28:24,400 Vielleicht ist dies Sekunden oder Seite turns-- was auch immer. 639 00:28:24,400 --> 00:28:27,290 Jedoch Sie zählen wollen, ist was wird das Bild darstellen. 640 00:28:27,290 --> 00:28:30,630 Und das erste Algorithmus, ich werde als nur eine gerade Linie zu beschreiben. 641 00:28:30,630 --> 00:28:33,120 Wenn es gibt, n-Seiten in das Telefonbuch, dann ist es 642 00:28:33,120 --> 00:28:36,010 vielleicht nehmen Sie mir so viele als n Schritte Mike zu finden. 643 00:28:36,010 --> 00:28:38,930 Wenn Verizon oder die Telefongesellschaft im nächsten Jahr fügt eine weitere Seite, 644 00:28:38,930 --> 00:28:42,170 es könnte nehmen mir noch eine step-- eine Einheit von Zeit Mike zu finden. 645 00:28:42,170 --> 00:28:44,230 Also gibt es nur dieses zu-Eins-Verhältnis. 646 00:28:44,230 --> 00:28:45,970 Es ist eine gerade Linie Hang. 647 00:28:45,970 --> 00:28:49,110 >> Inzwischen, das zweite algorithm-- wenn ich 648 00:28:49,110 --> 00:28:51,570 gehen zwei auf Zeit-- zwei, vier, sechs, acht oder double-- 649 00:28:51,570 --> 00:28:54,550 Gehen Sie durch die Seiten zweimal zu einem Zeitpunkt, zwei zu einer Zeit, 650 00:28:54,550 --> 00:28:55,710 es ist immer noch gerade Linie. 651 00:28:55,710 --> 00:28:58,720 Es gibt jetzt eine 1.59 Verhältnis, aber nur ein wenig niedriger. 652 00:28:58,720 --> 00:29:02,240 Also, wenn es so viele Seiten auf der Karte hier in gelb, 653 00:29:02,240 --> 00:29:04,800 das könnte nehmen mir diese viele Schritte oder Sekunden, 654 00:29:04,800 --> 00:29:07,980 andernfalls es geht um mich zu nehmen doppelt so viele auf der roten Linie. 655 00:29:07,980 --> 00:29:10,190 >> Aber die grüne Linie ist die eigentliche Essen zum Mitnehmen. 656 00:29:10,190 --> 00:29:12,290 Dies ist, was wir in der Regel rufen Sie einen logorithm-- log 657 00:29:12,290 --> 00:29:13,840 von n, wobei n die Anzahl der Seiten ist. 658 00:29:13,840 --> 00:29:16,450 Aber es ist die Form, was zählt heute, weil wir nicht haben, 659 00:29:16,450 --> 00:29:17,950 zu denken, auch über Punkte aufgetragen ist. 660 00:29:17,950 --> 00:29:19,830 >> Denken Sie an einem extremen Szenario. 661 00:29:19,830 --> 00:29:23,070 Nehmen wir an Verizon morgen verdoppelt sich die Anzahl der Seiten in diesem Telefonbuch, 662 00:29:23,070 --> 00:29:24,900 von 1.000 bis 2.000. 663 00:29:24,900 --> 00:29:28,440 In dem ersten Algorithmus, I könnte eine zusätzliche 1.000 verschwenden 664 00:29:28,440 --> 00:29:32,080 Schritte für Mike suchen, nur weil Verizon verdoppelt die Größe des Buches. 665 00:29:32,080 --> 00:29:34,740 Die zweite algorithm-- es könnte nimm mich eine zusätzliche 500 Stufen. 666 00:29:34,740 --> 00:29:38,370 1000 weitere Seiten, gehe ich zwei auf Zeit-- 500 weitere Schritte Mike zu finden. 667 00:29:38,370 --> 00:29:41,020 >> Aber das dritte Algorithmus Art magische ist. 668 00:29:41,020 --> 00:29:44,270 Verizon verdoppelt sich die Anzahl Seiten 1000 bis 2000, 669 00:29:44,270 --> 00:29:47,730 aber wie viele Schritte tut es mich für Mike zu suchen? 670 00:29:47,730 --> 00:29:51,220 Es ist nur eine, weil ich es kann nur Reißen Sie das Telefonbuch ein weiteres Mal 671 00:29:51,220 --> 00:29:55,280 von einem 2000 Seite Problem ein 1000 Seite Problem, und voila. 672 00:29:55,280 --> 00:29:57,030 Ich habe einen massiven Biss aus ihm heraus genommen. 673 00:29:57,030 --> 00:29:59,405 >> Und wenn man dann wirklich extrem, nehme an, dass das Telefonbuch 674 00:29:59,405 --> 00:30:03,600 Unternehmen hatte etwas verrückt wie eine 4 Milliarden Seite Telefonbuch. 675 00:30:03,600 --> 00:30:07,020 Nun, wie viele Schritte könnte es dauern, Mike Smith in einem 4 zu finden Mrd. 676 00:30:07,020 --> 00:30:09,990 Seite Telefonbuch? 677 00:30:09,990 --> 00:30:16,450 Es ist eine große Zahl, aber nur 4 Milliarden 2000000000-1000000000 zu über 500 Mio 678 00:30:16,450 --> 00:30:18,720 250 million-- noch klingt wie große Zahlen, 679 00:30:18,720 --> 00:30:20,980 aber ich bin sehr schnell immer zu kleineren Werten. 680 00:30:20,980 --> 00:30:24,790 >> Und in der Tat, wenn ich die Mathematik Recht, kann ich nur teilen 4 Milliarden 681 00:30:24,790 --> 00:30:28,750 um etwa das 32-fache vor Ich erhalte auf nur ein. 682 00:30:28,750 --> 00:30:31,640 Also, wenn das Telefonbuch waren 4 Milliarden Seiten lang, keine große Sache. 683 00:30:31,640 --> 00:30:35,270 Innerhalb von wenigen Sekunden, vielleicht 32 Sekunden, konnte ich es in zwei Hälften teilen 684 00:30:35,270 --> 00:30:39,560 und finden schließlich Mike oder dem Schluss, dass er nicht da ist. 685 00:30:39,560 --> 00:30:42,219 Und das ist das Wesen eines algorithm-- einen guten Algorithmus. 686 00:30:42,219 --> 00:30:44,260 Und das ist einer der Ziele einer Klasse wie diese, 687 00:30:44,260 --> 00:30:47,350 Ich versucht, herauszufinden, wie zu tun lösen das Problem nicht nur richtig, 688 00:30:47,350 --> 00:30:52,360 wie ich wusste immer, wie es ein zu tun Seite an einem Zeit-- aber richtig und gut. 689 00:30:52,360 --> 00:30:55,034 Wie gestalte ich gut Lösungen für Probleme? 690 00:30:55,034 --> 00:30:57,200 Also lassen Sie uns einen Moment hier und geben Ihnen ein Gefühl jetzt 691 00:30:57,200 --> 00:31:00,260 der Verlauf der CS50 itself-- einführen ein Mitarbeiter einige Kursteilnehmer. 692 00:31:00,260 --> 00:31:02,010 Kurz vor 2.00 Uhr, werden wir nehmen Sie eine kurze Pause 693 00:31:02,010 --> 00:31:03,520 so dass diejenigen von Ihnen, wer einkaufen können 694 00:31:03,520 --> 00:31:05,130 Ente aus und nehmen ein Blick auf einige andere Klasse 695 00:31:05,130 --> 00:31:06,580 und beobachten Sie den Rest dieses online. 696 00:31:06,580 --> 00:31:09,250 Aber jetzt lassen Sie mich CS50, die Klasse selbst, 697 00:31:09,250 --> 00:31:11,330 und vor allem, was neu ist. 698 00:31:11,330 --> 00:31:13,960 >> So ist die im vergangenen Frühjahr, wir verbrachte ziemlich viel Zeit-- 699 00:31:13,960 --> 00:31:17,911 den Kurs der Mitarbeiter und I-- denken über das, was es ist wollen wir CS50 zu sein, 700 00:31:17,911 --> 00:31:19,910 und geht zurück zum ersten Prinzipien, so zu sprechen, 701 00:31:19,910 --> 00:31:22,760 zu überlegen, was es ist, wir wollen dieser Kurs aussehen und sein 702 00:31:22,760 --> 00:31:23,740 wie für ihre Schüler. 703 00:31:23,740 --> 00:31:26,480 Und so werden Sie in Problem sehen auf Null gesetzt und eine Einladung 704 00:31:26,480 --> 00:31:28,780 einen Blick auf das zu nehmen URL, die einen Überblick über 705 00:31:28,780 --> 00:31:33,270 einige der Beweggründe für die Folgende Merkmale des Herbstes 2016. 706 00:31:33,270 --> 00:31:35,570 >> So wie Sie aufgelesen haben von der TL: DR Handout, 707 00:31:35,570 --> 00:31:39,060 der Lehrplan heute sowie von der Kurskatalog, in diesem Jahr in CS50, 708 00:31:39,060 --> 00:31:42,540 Sie nur zu besuchen erwartet today-- so gut Job done-- 709 00:31:42,540 --> 00:31:45,960 und der letzte Vortrag am 21. November statt. 710 00:31:45,960 --> 00:31:49,150 Und Sie sind willkommen, aber nicht zu erwarten besuchen diese Vorträge in der Mitte, 711 00:31:49,150 --> 00:31:51,180 weil das, was wir tun, In diesem Jahr dreht 712 00:31:51,180 --> 00:31:52,661 in Echtzeit Material den Kurs des. 713 00:31:52,661 --> 00:31:54,660 So wird alles bleiben Strom und eingebaut 714 00:31:54,660 --> 00:31:57,410 als beste can-- wir aktuelle Ereignisse und Gespräche, die Leute könnten 715 00:31:57,410 --> 00:32:00,400 in der Industrie werden mit in die Welt, sondern macht das Material 716 00:32:00,400 --> 00:32:03,892 vorhanden, als ein Ergebnis, auch earlier-- komplett mit Volltext-Transkripte 717 00:32:03,892 --> 00:32:05,850 und die Auffindbarkeit und die Links zu anderen Ressourcen. 718 00:32:05,850 --> 00:32:07,930 >> Und in der Tat, wir haben gewesen behaupten einige Zeit 719 00:32:07,930 --> 00:32:10,830 und glauben wir nun diese, dass wir schaffen können, digital, 720 00:32:10,830 --> 00:32:15,170 ein noch intensiveres, ein zwingender pädagogische Erfahrung, im Gegensatz 721 00:32:15,170 --> 00:32:19,110 hier etwa 23 mal zu sammeln persönlich, wie ich hörte jemand 722 00:32:19,110 --> 00:32:22,925 einfach über Informatik sprechen, im Gegensatz aktiver zu engagieren. 723 00:32:22,925 --> 00:32:25,800 So werden Sie in den Kurs der Lehrplan sehen eine Skizze des Semesters hier, 724 00:32:25,800 --> 00:32:27,840 zusammen mit, wenn Vorträge gefilmt werden, an dem du bist 725 00:32:27,840 --> 00:32:29,710 willkommen, aber nicht zu erwarten, und wann wird sie 726 00:32:29,710 --> 00:32:31,640 auf den Kurs der Website veröffentlicht werden. 727 00:32:31,640 --> 00:32:34,300 >> Und was wir hier tun auf Mittwoch nächste Woche, 728 00:32:34,300 --> 00:32:37,362 nur ist viel mehr eng mit jene Leute, die teilnehmen möchten, 729 00:32:37,362 --> 00:32:39,820 durch eine sogenannte Spaziergang machen, wo ich und die Köpfe des Kurs 730 00:32:39,820 --> 00:32:41,730 tatsächlich Dinge machen ein wenig intimer 731 00:32:41,730 --> 00:32:44,313 hier unten im Orchester Abschnitt, haben noch einige Technologie 732 00:32:44,313 --> 00:32:46,365 und zu Fuß durch die aktuellen Woche Problem Set, 733 00:32:46,365 --> 00:32:50,020 und bieten Ihnen particularly-- wenn unter die weniger comfortable-- umso mehr 734 00:32:50,020 --> 00:32:52,790 Anleitung, die Sie vielleicht wollen oder müssen für die Woche Herausforderung. 735 00:32:52,790 --> 00:32:55,820 Und für diejenigen, ähnlich, die es nicht können diejenigen, die in Person, keine große Sache teilnehmen. 736 00:32:55,820 --> 00:32:58,486 Es wird ähnlich der Leitung von einer der leitenden Angestellten Kurs, 737 00:32:58,486 --> 00:33:02,650 Zamalya, die gleiche Chance eingebettet in dem Problem setzt sich. 738 00:33:02,650 --> 00:33:04,960 >> Problem stellt in diesem Jahr wird am Freitag veröffentlicht 739 00:33:04,960 --> 00:33:08,080 und nicht mehr tun Sieben Tage später, aber 10 Tage later-- bewusst 740 00:33:08,080 --> 00:33:10,910 mit jedem Problem überlappende gesetzt, um so besser aufnehmen, 741 00:33:10,910 --> 00:33:13,050 wir hoffen, Ebbe und Flut in Studentenzeiten, 742 00:33:13,050 --> 00:33:16,550 vor allem, wenn Midterms oder in der Leichtathletik oder Akademiker oder extracurriculars 743 00:33:16,550 --> 00:33:18,465 neigen dazu, zu kommen und zu gehen insbesondere Mitte Semester. 744 00:33:18,465 --> 00:33:21,340 Das sollten Sie ein wenig mehr geben nach eigenem Ermessen entscheiden, ob Sie Front 745 00:33:21,340 --> 00:33:25,690 laden Sie Ihre Woche mit CS50 oder zurück Last anstatt es am folgenden Wochenende. 746 00:33:25,690 --> 00:33:28,817 Also schauen auf den Kurs des Lehrplans hier für den Zeitplan davon. 747 00:33:28,817 --> 00:33:30,900 Und Sie werden auch feststellen, unter die Änderungen in diesem Jahr, 748 00:33:30,900 --> 00:33:34,082 für diejenigen, die mehr vertraut mit Programmierung in der Vergangenheit, 749 00:33:34,082 --> 00:33:36,290 wir werden die Semester beginnen, wir werden heute in Scratch, 750 00:33:36,290 --> 00:33:39,730 konzentrieren sich vor allem auf die Sprache C, genannt und dann nicht über 751 00:33:39,730 --> 00:33:43,430 PHP, sondern auf eine Sprache namens Python gegen Ende des Semesters 752 00:33:43,430 --> 00:33:46,565 im Zusammenhang mit Web-Programmierung, zusammen mit SQL und JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, und noch mehr. 754 00:33:48,930 --> 00:33:51,790 >> Und in der Antwort auf eine FAQ, es ist in der Tat der Fall, 755 00:33:51,790 --> 00:33:55,520 dass CS ist nicht so gefährlich, wie ich einmal dachte, es war, aber es ist so viel Arbeit 756 00:33:55,520 --> 00:33:57,280 wie ich gehört hatte, könnte es sein. 757 00:33:57,280 --> 00:34:03,210 Aber das ist die sagen, dass hier einige sind Statistiken aus dem Herbst 2015 Studenten, 758 00:34:03,210 --> 00:34:06,460 wobei die horizontalen blauen Linien repräsentieren die durchschnittliche Anzahl der Stunden, 759 00:34:06,460 --> 00:34:06,960 berichtet. 760 00:34:06,960 --> 00:34:10,570 Und Sie werden im Durchschnitt sehen sechs bis 10 bis 12-- vielleicht 16 761 00:34:10,570 --> 00:34:14,580 oder so und so weiter, aber mit hohe Varianz klar zu sein. 762 00:34:14,580 --> 00:34:18,570 Und so erkennen, dass es nicht nur Studenten bequemer und weniger 763 00:34:18,570 --> 00:34:22,150 im Verlauf komfortabel, aber eine entsprechende Unterstützung 764 00:34:22,150 --> 00:34:25,699 Struktur die Schüler zu bekommen durch das Semester erfolgreich. 765 00:34:25,699 --> 00:34:29,409 >> Ja, in Antwort auf eine FAQ, sollten Sie nehmen CS50 als erstes Jahr? 766 00:34:29,409 --> 00:34:30,139 Absolut. 767 00:34:30,139 --> 00:34:32,690 Und in der Tat, ich bereue nicht meinen Weg gefunden zu haben, 768 00:34:32,690 --> 00:34:35,170 oder fand ein neues Feld in diesem ersten Jahr als gut. 769 00:34:35,170 --> 00:34:39,149 Und sollten Sie CS50 nehmen mit andere Kurse, sicherlich als well-- 770 00:34:39,149 --> 00:34:41,940 und die allgemeine Beratung könnten wir geben den Studenten, dass CS50 ist wahrscheinlich 771 00:34:41,940 --> 00:34:44,929 nicht die Art von Klasse oder Intro-Klasse dass Sie sollten mit drei nehmen 772 00:34:44,929 --> 00:34:47,199 andere oder vier andere p-Set-Klassen. 773 00:34:47,199 --> 00:34:50,583 Aber wenn Sie nehmen zwei weitere p-Set Klassen, etwas anderes, und CS50, 774 00:34:50,583 --> 00:34:51,499 absolut überschaubar. 775 00:34:51,499 --> 00:34:54,900 Ich habe in den vielen Studenten hatten Vergangenheit so recht erfolgreich getan. 776 00:34:54,900 --> 00:34:57,490 >> Und euch auf das, bekommen Ziellinie erfolgreich, 777 00:34:57,490 --> 00:35:00,260 ist der Kurs haben sections-- verschiedene Strecken für Studenten 778 00:35:00,260 --> 00:35:03,100 weniger bequem, bequemer, und irgendwo dazwischen, 779 00:35:03,100 --> 00:35:04,850 wobei im Laufe des erste Problem Satz, 780 00:35:04,850 --> 00:35:06,360 Sie finden sich zu beschreiben gefragt. 781 00:35:06,360 --> 00:35:09,151 Und wenn Sie gehören zu den weniger komfortabel, es ist die Art der Sache 782 00:35:09,151 --> 00:35:10,420 dass man einfach nicht wissen. 783 00:35:10,420 --> 00:35:13,010 Und in der Tat, das ist schon die wachsende demographische in CS50 784 00:35:13,010 --> 00:35:14,090 für eine ganze Reihe von Jahren. 785 00:35:14,090 --> 00:35:17,680 >> Wie in der letzten Herbst für Beispiel 58% der Klasse 786 00:35:17,680 --> 00:35:20,560 bezeichneten sich als unter denen, weniger bequem, 787 00:35:20,560 --> 00:35:23,210 mit 9% unter jenen mehr komfortabel, und dann 788 00:35:23,210 --> 00:35:25,900 die anderen Schüler dort in rot selbst beschreiben 789 00:35:25,900 --> 00:35:27,890 als irgendwo dazwischen. 790 00:35:27,890 --> 00:35:31,980 Und Sie werden sehen hier die Themen Gesamt und Zeitplan von Abschnitten, von denen alle 791 00:35:31,980 --> 00:35:34,820 sind persönlich angeboten, in Echtzeit, mit dem Verlauf des 792 00:35:34,820 --> 00:35:38,320 erstaunliche Personal von Lehre Stipendiaten und natürlich Assistenten, von denen einige 793 00:35:38,320 --> 00:35:39,660 Sie werden in nur einem Augenblick treffen. 794 00:35:39,660 --> 00:35:42,993 >> Abschnitte selbst, wie Sie sehen werden, wird sein montags und dienstags und mittwochs, 795 00:35:42,993 --> 00:35:45,910 um zu ermöglichen, Sie tauchen in nach Eingriff, wenn Sie so 796 00:35:45,910 --> 00:35:48,110 wählen, im Laufe des in dieser Woche Vorlesung früher. 797 00:35:48,110 --> 00:35:51,420 Und dann Stunden Büro, das sicher, mit jedem Jahr, 798 00:35:51,420 --> 00:35:54,110 nicht weniger von einer gewesen Herausforderung für den Kurs. 799 00:35:54,110 --> 00:35:57,040 Und in diesem Jahr planen wir nicht nur zu halten Büro hours-- ein 800 00:35:57,040 --> 00:36:00,300 auf der einen Möglichkeiten für Hilfe Studenten mittwochs donnerstags 801 00:36:00,300 --> 00:36:03,790 und Sonntag, der letzte von denen, wobei am Nachmittag durch Design 802 00:36:03,790 --> 00:36:06,910 einige der Stress zu reduzieren, unweigerlich entsteht mit spät in die Nacht 803 00:36:06,910 --> 00:36:10,180 p-settting mit einer Frist looming-- aber der Bürozeiten wird auch angeboten werden 804 00:36:10,180 --> 00:36:14,920 montags und dienstags und Mittwochs und freitags und samstags, 805 00:36:14,920 --> 00:36:17,080 Dank an unsere Freunde an HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 hat jetzt seinen eigenen Raum für Studenten und CS50 Personal, 807 00:36:20,330 --> 00:36:23,070 oben auf 67 Mount Auburn Street, genau dort in Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Die Vision, für die ist, dass CS50 ist TFs und Zertifizierungsstellen in der gesamten Woche, 809 00:36:26,340 --> 00:36:29,052 so ziemlich überall in den meisten Tagen wird für die Unterstützung da sein. 810 00:36:29,052 --> 00:36:30,760 Also, wenn Sie haben einige bekam Frage auf einem p-Set 811 00:36:30,760 --> 00:36:33,093 oder Sie fühlen sich ein wenig blockiert oder ein wenig verwirrt, 812 00:36:33,093 --> 00:36:35,640 und Teufel, du hast eine Stunde bekam oder eine halbe Stunde zwischen den Klassen, 813 00:36:35,640 --> 00:36:38,920 vor allem in der square-- können Sie Pop in und haben die Frage beantwortet 814 00:36:38,920 --> 00:36:41,720 davon haben, dass eine Verwechslung clarified-- sehr viel im Geiste, 815 00:36:41,720 --> 00:36:45,490 Sie sind vertraut, der Mathematik Abteilung eigene mathematische Fragen Zentrum, 816 00:36:45,490 --> 00:36:49,300 aber ziemlich viel rund um die Uhr per [? Gcal?], Die wir online veröffentlichen wird. 817 00:36:49,300 --> 00:36:52,400 >> Tutoring ist auch für diejenigen, Studenten, frei aus dem Kurs des 818 00:36:52,400 --> 00:36:54,750 eigene Mitarbeiter, wenn Sie möchten, intimer eins zu eins, 819 00:36:54,750 --> 00:36:58,940 oder zwei oder drei Mitschülern nur, arbeiten mit einem der Mitarbeiter des Kurses. 820 00:36:58,940 --> 00:37:02,320 Und in der Tat sind diese hier nur einige der Mitarbeiter den Kurs, 821 00:37:02,320 --> 00:37:04,120 einige von ihnen werden Sie in nur einem Augenblick treffen. 822 00:37:04,120 --> 00:37:07,440 In der Tat, CS50 eigenen Kopf Lehre Kerl, 823 00:37:07,440 --> 00:37:09,790 und Kopf Kurs Assistent und Lehrer, 824 00:37:09,790 --> 00:37:12,998 kommen könnte, erlauben sie zu sagen, hallo. 825 00:37:12,998 --> 00:37:22,498 >> [BEIFALL] 826 00:37:22,498 --> 00:37:23,456 Sprecher 1: [unverständlich]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [BEIFALL] 829 00:37:57,856 --> 00:37:58,814 SPRECHER 2: [unverständlich]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [BEIFALL] 832 00:38:27,238 --> 00:38:28,196 Lautsprecher 3: [unverständlich]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [BEIFALL] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: Und lassen Sie uns bringen an Bord zwei von CS50 esten 836 00:39:06,740 --> 00:39:09,730 als auch leitende Angestellte, Rob und Zamayla. 837 00:39:09,730 --> 00:39:15,120 >> [BEIFALL] 838 00:39:15,120 --> 00:39:17,226 >> Tatsächlich sowohl Rob und Zamayla haben bei uns 839 00:39:17,226 --> 00:39:19,940 so lange, dass ich war in der Lage in CS50 Archiven zu gehen 840 00:39:19,940 --> 00:39:22,470 und finden Sie diese sehr SD Aufnahmen von ihnen beteiligten 841 00:39:22,470 --> 00:39:25,402 auf der Bühne vor einigen Jahren selbst. 842 00:39:25,402 --> 00:39:26,110 ROB: [unverständlich]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [BEIFALL] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [unverständlich] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [BEIFALL] 848 00:40:52,467 --> 00:40:53,425 DAVID MALAN: Vielen Dank. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 So zusätzlich zu diesen Teammitglieder hier, 851 00:40:58,030 --> 00:41:01,662 CS50 verfügt über ein Team von fast 100 Mitarbeiter, von denen alle 852 00:41:01,662 --> 00:41:04,370 wird für die Abschnitte zur Verfügung und Bürozeiten und vieles mehr. 853 00:41:04,370 --> 00:41:06,920 Und wie Rob auch sagt, ist dies die bedeutendste Überholung 854 00:41:06,920 --> 00:41:09,534 von CS50 in den 10 Jahren, in denen Ich habe in gewesen [unverständlich]. 855 00:41:09,534 --> 00:41:12,200 [Unverständlich] konzentrierte sich vor allem in eine Trägerstruktur, 856 00:41:12,200 --> 00:41:14,050 viel Wegschneiden die Masse, die gewesen ist 857 00:41:14,050 --> 00:41:16,870 in 10 Jahren angesammelt iterativer Entwicklungen 858 00:41:16,870 --> 00:41:18,120 auf das Problem setzt Kurs. 859 00:41:18,120 --> 00:41:21,470 >> Also in diesem Jahr, nicht nur in der Klasse, aber auch in Form des Problems des Kurs 860 00:41:21,470 --> 00:41:24,800 Sätze, sollten Sie Dinge zu werden schlanker, Trimmer, viel 861 00:41:24,800 --> 00:41:26,700 überschaubarer als in den vergangenen Jahren, als wir 862 00:41:26,700 --> 00:41:31,330 Schuppen das Gepäck einige das ist von der Natur der sich entwickelnden Jahr entwickelt 863 00:41:31,330 --> 00:41:32,970 Jahr und Iterieren. 864 00:41:32,970 --> 00:41:35,110 So ist die neue und verbesserte beginnt heute. 865 00:41:35,110 --> 00:41:37,860 >> Sie werden etwas mehr von der treffen Natürlich Mitarbeiter in der [unverständlich] 866 00:41:37,860 --> 00:41:40,186 um 2:30, wo wir tätig sind, als Tradition, Kuchen. 867 00:41:40,186 --> 00:41:42,060 Es ist ein bisschen mehr Kuchen dass als, aber Sie werden 868 00:41:42,060 --> 00:41:44,690 treffen Erin und Tobias und andere noch. 869 00:41:44,690 --> 00:41:46,470 Und lassen Sie mich Ihnen eine Tour, bevor wir hören 870 00:41:46,470 --> 00:41:49,600 von einigen der anderen Mitarbeiter in der Klasse, was auch erwartet. 871 00:41:49,600 --> 00:41:52,730 In der Tat, beginnen wir CS50 ist immer Semester am kommenden Samstag, 872 00:41:52,730 --> 00:41:54,330 mit dem, was CS50 Puzzle Tag genannt wird. 873 00:41:54,330 --> 00:41:56,710 >> Es hat nichts damit zu tun, Informatik per se, 874 00:41:56,710 --> 00:41:58,669 aber mit über Problem allgemein zu lösen. 875 00:41:58,669 --> 00:42:01,210 Und wenn man so wählen, teilzunehmen, pro einige der Einladungen, 876 00:42:01,210 --> 00:42:03,460 Sie haben Tür vielleicht gesehen hier fallen gelassen oder auf der Bühne, 877 00:42:03,460 --> 00:42:05,830 es ist eine Gelegenheit, in Teams von zwei oder drei oder vier, 878 00:42:05,830 --> 00:42:10,680 für Rätsel und Pizza zu beteiligen und Preise und more-- an diesem Samstag, 879 00:42:10,680 --> 00:42:12,560 Bleibt dran. 880 00:42:12,560 --> 00:42:15,082 >> Sie werden auch feststellen, dass jeder Freitag, um Feuer und Eis, 881 00:42:15,082 --> 00:42:16,790 CS50 bringt ein ganze Reihe von Studenten 882 00:42:16,790 --> 00:42:19,100 zum Mittagessen, eine große zu machen fühlen Klasse intimer, 883 00:42:19,100 --> 00:42:21,820 und in der Regel zusammen zu bringen Alumni und Freunde aus der Industrie 884 00:42:21,820 --> 00:42:24,710 reden über das, was sie haben gewesen zu seit dem Abschluss. 885 00:42:24,710 --> 00:42:27,820 In ähnlicher Weise wird in diesem Jahr wir einweihen CS50 die erste 50 886 00:42:27,820 --> 00:42:31,390 Codierung contest-- einen mittleren Semester Gelegenheit, damit jeder 887 00:42:31,390 --> 00:42:35,430 auf einer Opt-in-Basis, ein zu haben Herausforderung der Verstand gegen Mitschüler, 888 00:42:35,430 --> 00:42:39,250 wieder in Teams von zwei oder drei oder vier, nur dass die Programmierung mit 889 00:42:39,250 --> 00:42:41,920 kapieren, dass man dann unter Gürtel nach nur sechs oder sieben 890 00:42:41,920 --> 00:42:44,710 Wochen der Klasse, und die Teilnahme in dieser Art von Wettbewerb 891 00:42:44,710 --> 00:42:50,261 online-- wenn Sie möchten, dass Ihre eigenen zu schärfen Fähigkeiten umso mehr in dieser Herausforderung. 892 00:42:50,261 --> 00:42:52,760 Am Ende des Semesters ist die sogenannte CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 eine Gelegenheit, die um 7:00 Uhr beginnt PM endet um 7:00 Uhr, und auf dem Weg 894 00:42:56,970 --> 00:43:01,900 sind 12 Abendstunden, in denen zu tauchen in die endgültige project-- Kurs 895 00:43:01,900 --> 00:43:04,820 eine Gelegenheit zu entwerfen und die meisten etwas von Interesse durch 896 00:43:04,820 --> 00:43:06,980 Sie mit Ihrem Unterricht Kollegen Führung. 897 00:43:06,980 --> 00:43:09,600 Rund um 9.00 Uhr der Regel tun wir servieren Pizza, 01.00, 898 00:43:09,600 --> 00:43:13,210 Philippe, und die wenigen von uns die um 5:00 Uhr noch wach sind, 899 00:43:13,210 --> 00:43:16,310 sind Shuttle-Bussen nach unten die Straße nach IHOP zum Frühstück. 900 00:43:16,310 --> 00:43:19,340 >> Und dann ein paar Tage später ist die sogenannte CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 ein Ende der Semesterausstellung Fest nur, wie weit so viele 902 00:43:23,450 --> 00:43:28,200 von CS50 haben Studenten kommen aus Woche Null den ganzen Weg zu Woche, 903 00:43:28,200 --> 00:43:32,610 und wenn man bedenkt, dass 73% der Befragten, Mitschüler und Ihnen in diesem Jahr haben 904 00:43:32,610 --> 00:43:34,840 noch nie eine CS-Klasse übernommen. 905 00:43:34,840 --> 00:43:39,226 In der Tat, wie viel noch einmal hervorzuheben, hier ist ein paar von CS50 Mitarbeiter mehr Gesichter. 906 00:43:39,226 --> 00:43:40,184 Lautsprecher 4: [unverständlich]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 Lautsprecher 5: [unverständlich]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 Lautsprecher 6: [unverständlich]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 Lautsprecher 7: [unverständlich]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 Lautsprecher 8: [unverständlich] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 Lautsprecher 9: [unverständlich]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> Lautsprecher 4: [unverständlich]. 919 00:44:15,461 --> 00:44:16,461 >> 10 SPRECHER: [unverständlich]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 11 SPRECHER: [unverständlich]. 922 00:44:23,438 --> 00:44:24,438 12 SPRECHER: [unverständlich]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 13 SPRECHER: [unverständlich] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> 14 SPRECHER: [unverständlich]. 927 00:44:40,342 --> 00:44:42,863 >> 13 SPRECHER: [unverständlich]. 928 00:44:42,863 --> 00:44:43,821 15 SPRECHER: [unverständlich] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 16 SPRECHER: [unverständlich]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> 11 SPRECHER: [unverständlich] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 Lautsprecher 5: [unverständlich]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: Ein Teil der Mannschaft selbst einkaufen Klassen. 937 00:45:15,130 --> 00:45:17,760 Aber wenn diejenigen Mitglieder hier von CS50 Mitarbeiter sind, 938 00:45:17,760 --> 00:45:19,230 kommen konnte nur für einen Moment. 939 00:45:19,230 --> 00:45:23,450 CS50 TFS und CAs und [? Personal?] Mitglieder hier-- das sind nur ein paar 940 00:45:23,450 --> 00:45:28,880 der faces-- von denen nur Sie sah, und ein paar other-- und ein paar andere 941 00:45:28,880 --> 00:45:30,020 immer noch. 942 00:45:30,020 --> 00:45:33,242 Warum gehen wir nicht weiter und erlauben euch fünf Minuten Pause. 943 00:45:33,242 --> 00:45:35,450 Wenn Sie sich zu ducken, um Shop Klassen, das ist in Ordnung. 944 00:45:35,450 --> 00:45:38,900 Und in fünf Minuten, wir werden wieder aufnehmen, einen Blick auf Scratch-- Einnahme der ersten 945 00:45:38,900 --> 00:45:42,420 unserer Programmiersprache, treffen den Kurs der Mitarbeiter hier etwas mehr, 946 00:45:42,420 --> 00:45:45,020 und konzentrieren sich letztlich auf Problem auf Null gesetzt. 947 00:45:45,020 --> 00:45:46,710 Also werden wir zurück in fünf Minuten. 1 00:45:46,864 --> 00:45:47,370 >> Gut. 2 00:45:47,370 --> 00:45:48,590 So sind wir zurück. 3 00:45:48,590 --> 00:45:51,330 Und in unserer verbleibenden Zeit heute, ist das Ziel 4 00:45:51,330 --> 00:45:54,320 ist das Spielfeld Ebene in Bezug auf einige Terminologie, 5 00:45:54,320 --> 00:45:55,297 in Bezug auf einige Ideen. 6 00:45:55,297 --> 00:45:57,380 Denn in der Tat, wie pro einige der Charts früher, 7 00:45:57,380 --> 00:46:00,130 es geht um eine Reihe von zu sein Ebenen der Erfahrung in der Klasse, 8 00:46:00,130 --> 00:46:03,210 einige von deren Studenten einige Programmierung vor genommen, 9 00:46:03,210 --> 00:46:04,200 von denen einige nicht. 10 00:46:04,200 --> 00:46:07,430 Und so mit diesem ersten Problem gesetzt und mit dieser ersten Sprache 11 00:46:07,430 --> 00:46:10,830 haben wir die Möglichkeit haben, zu starten für nach dem heutigen Tag bewilligt zu nehmen 12 00:46:10,830 --> 00:46:12,960 einige gemeinsames Vokabular und Idee. 13 00:46:12,960 --> 00:46:15,590 >> Und wir werden dies tun haft den Kurs des ersten languages-- 14 00:46:15,590 --> 00:46:21,070 zusätzlich zu C und Python und JavaScript und SQL und HTML und CSS, 15 00:46:21,070 --> 00:46:24,450 wir werden zunächst konzentrieren und nur für Problem auf Null gesetzt 16 00:46:24,450 --> 00:46:28,160 auf dieser grafischen Sprache, die so genannte Scratch, entwickelt von Media Lab des MIT 17 00:46:28,160 --> 00:46:30,880 auf der Straße, zu helfen, Studenten und Kinder besonders 18 00:46:30,880 --> 00:46:35,070 äußern sich algorithmically-- in einer Art und Weise mehr im Einklang mit dem, was 19 00:46:35,070 --> 00:46:37,300 wir könnten rechnerische Denken nennen. 20 00:46:37,300 --> 00:46:40,985 >> Und es ist eine nützliche Sprache, weil sehr schnell nächste Woche in der ersten Woche, 21 00:46:40,985 --> 00:46:44,360 Sie über wir zu einer traditionelle und obskure Sprache genannt 22 00:46:44,360 --> 00:46:46,370 C, die rein textliche ist. 23 00:46:46,370 --> 00:46:48,930 Sie verwenden Ihre Tastatur in um Anweisungen zu schreiben 24 00:46:48,930 --> 00:46:50,230 wie diese auf dem Bildschirm. 25 00:46:50,230 --> 00:46:52,840 Aber auch wenn Sie noch nie gesehen eine Programmiersprache vor, 26 00:46:52,840 --> 00:46:55,170 in nur einem Blick auf dies alles sei es kryptisch, 27 00:46:55,170 --> 00:47:00,010 Sie können sich wahrscheinlich vorstellen, dass wahrscheinlich druckt Hallo Welt. 28 00:47:00,010 --> 00:47:02,050 Aber es gibt eine Menge von syntaktischen Kopf dort. 29 00:47:02,050 --> 00:47:05,770 Es ist die seltsame Hash Symbol oder Hash-Tag bis oben. 30 00:47:05,770 --> 00:47:08,900 Es gibt die spitzen Klammern, einige Klammern, geschweifte Klammern, halb colon-- 31 00:47:08,900 --> 00:47:11,880 es gibt nur so viel visuelle Syntax, die in die Quere kommt. 32 00:47:11,880 --> 00:47:13,940 Wir beginnen den Kurs mit Scratch, um zu bekommen 33 00:47:13,940 --> 00:47:17,600 vorbei an all derer, intellektuell uninteressant Ablenkungen, 34 00:47:17,600 --> 00:47:20,290 und konzentrieren sich stattdessen auf die Ideen. 35 00:47:20,290 --> 00:47:22,540 >> In der Tat könnte dies zuvor. 36 00:47:22,540 --> 00:47:24,830 Dies hierfür Woche wird nach sein. 37 00:47:24,830 --> 00:47:26,760 Damit in dieser grafischen Sprache Scratch, 38 00:47:26,760 --> 00:47:29,870 ist, wie Sie das gleiche implementieren würde program-- ein Programm, das bei der Ausführung, 39 00:47:29,870 --> 00:47:31,340 einfach sagt hallo Welt. 40 00:47:31,340 --> 00:47:34,740 Und was ist schön, über Scratch ist dass es diese grafische Programmierung 41 00:47:34,740 --> 00:47:38,780 Umgebung, die Puzzleteile verwendet oder Blöcke, die nur miteinander verzahnen 42 00:47:38,780 --> 00:47:40,440 wenn es logisch, sinnvoll ist, dies zu tun. 43 00:47:40,440 --> 00:47:43,810 Und mit Scratch können Sie entwickeln Animationen und interaktive Spiele 44 00:47:43,810 --> 00:47:47,270 und Kunst, und eine beliebige Anzahl von Dingen, die Sie können in Ihrem eigenen Verstand vorstellen, 45 00:47:47,270 --> 00:47:51,200 und setzen sie einfach durch Ziehen und Puzzleteile fallen. 46 00:47:51,200 --> 00:47:54,265 >> Und in der Tat, haben wir die Möglichkeit, einige der gleichen Ideen auszudrücken 47 00:47:54,265 --> 00:47:56,890 dass ich bereits erwähnt nur einen Moment vor im Rahmen von Mike Smith 48 00:47:56,890 --> 00:48:00,670 und die Suche eines Telefons book-- Dinge wie Funktionen, nur Aktionen, 49 00:48:00,670 --> 00:48:03,070 Dinge wie Schleifen, die tun Dinge wieder und wieder, 50 00:48:03,070 --> 00:48:05,170 Variablen, die ist etwas wir vorstellen, 51 00:48:05,170 --> 00:48:08,086 aber es ist bekannt vielleicht aus algebra-- nur eine Art Platzhalter 52 00:48:08,086 --> 00:48:10,840 einen gewissen Wert zu speichern Sie könnte müssen later-- Booleschen Ausdrücken, 53 00:48:10,840 --> 00:48:13,720 wo diejenigen, ja nein oder wahr Falsch-Fragen aus der Zeit vor. 54 00:48:13,720 --> 00:48:17,117 Die Bedingungen sind diese Gabeln in der road-- diejenigen Zweige sozusagen. 55 00:48:17,117 --> 00:48:19,700 Und dann gibt es einige ausgefallenere Funktionen, die wir heute noch sehen werden, 56 00:48:19,700 --> 00:48:22,850 genannt Arrays und Fäden und Veranstaltungen, dass wir dann erneut über 57 00:48:22,850 --> 00:48:24,460 Zeit in verschiedenen Sprachen. 58 00:48:24,460 --> 00:48:26,790 Aber Scratch ermöglicht es uns, alle diese zu erkunden. 59 00:48:26,790 --> 00:48:30,779 Also hier in Scratch, diese lila Block ist, was eine Funktion ist typischerweise 60 00:48:30,779 --> 00:48:31,570 gehen aussehen. 61 00:48:31,570 --> 00:48:35,620 Dieser lila Puzzlestück, das einige hat Wort wie sagen wir, die die Aktion, 62 00:48:35,620 --> 00:48:38,490 und dann könnte es haben ein Argument oder eine parameter-- irgendeine Weise 63 00:48:38,490 --> 00:48:41,140 der Art von Customizing was das Block tut 64 00:48:41,140 --> 00:48:45,182 so, dass es durch nicht vorherbestimmt MIT, was diese lila Block sagt. 65 00:48:45,182 --> 00:48:47,390 In der Tat, werden Sie in einem sehen Moment, dass ich bin in der Lage zu geben 66 00:48:47,390 --> 00:48:49,931 Wörter wie hallo Welt, oder Hallo David, oder hallo Zamayla, 67 00:48:49,931 --> 00:48:53,750 oder was auch immer ich will, in dem Argument zu diesem Puzzle piece-- das weiße Feld 68 00:48:53,750 --> 00:48:54,251 Dort. 69 00:48:54,251 --> 00:48:57,166 Inzwischen, wenn ich eine Schleife wollen, werden wir sehen, dass Puzzleteile gibt es, dass 70 00:48:57,166 --> 00:48:58,640 schauen ein wenig Orange wie diese. 71 00:48:58,640 --> 00:49:01,690 Und ihre Form Art schlägt vor, davon etwas passiert immer wieder 72 00:49:01,690 --> 00:49:02,680 in einem Zyklus. 73 00:49:02,680 --> 00:49:06,800 >> Also, wenn ich sagen wickeln ein Hallo Welt Block mit einem für immer in Scratch blockieren, 74 00:49:06,800 --> 00:49:10,307 es ist nur zu sagen, gehen zu halten hallo Welt für immer, ganz wörtlich. 75 00:49:10,307 --> 00:49:12,390 Inzwischen gibt es eine andere Art der Schleife in Scratch 76 00:49:12,390 --> 00:49:14,348 dass wir see-- eine Wiederholung BLOCK-- wo, wenn Sie 77 00:49:14,348 --> 00:49:17,940 im Voraus wissen, wie oft Sie wollen, dass die Schleife ausgeführt 78 00:49:17,940 --> 00:49:21,850 eine endliche Anzahl von Malen in fact-- Sie angeben, dass in einer Reihe durch Eingabe von 79 00:49:21,850 --> 00:49:25,380 oder sogar in einer variablen Einstecken, wie x oder y wie wir sehen werden. 80 00:49:25,380 --> 00:49:27,690 >> In der Tat, Variablen wie i in diesem Fall die 81 00:49:27,690 --> 00:49:30,109 ist ein gemeinsamer Name für eine Integer-Variable, 82 00:49:30,109 --> 00:49:31,900 nur speichert eine number-- eine ganze Zahl auch sein mag, 83 00:49:31,900 --> 00:49:35,470 Diese orange-Block zu verwenden hier eine Variable, wie ich auf Null. 84 00:49:35,470 --> 00:49:38,900 Hier ist ein Beispiel in Grün ein Booleschen Ausdruck in Scratch. 85 00:49:38,900 --> 00:49:43,700 Auch wenn dies sieht aus wie ein Mathe Formel, Mathematik Ungleichheiten wie diese 86 00:49:43,700 --> 00:49:45,320 wirklich sind Boolesche Ausdrücke. 87 00:49:45,320 --> 00:49:46,570 Dies ist entweder wahr oder falsch. 88 00:49:46,570 --> 00:49:48,300 I weniger als 50. 89 00:49:48,300 --> 00:49:51,815 Es ist entweder ein Ja oder keine Antwort oder wahr oder falsch Antwort. 90 00:49:51,815 --> 00:49:53,940 Und wir werden in der Regel rufen diese Booleschen Ausdrücken. 91 00:49:53,940 --> 00:49:55,148 Und es muss nicht 50 sein. 92 00:49:55,148 --> 00:49:57,970 Es kann als y x weniger, größer als y, gleich Y- 93 00:49:57,970 --> 00:50:00,020 eine beliebige Anzahl anderer Fragen sollten geprüft werden. 94 00:50:00,020 --> 00:50:03,250 >> Nun, auf den ersten Blick könnte dies aussehen plötzlich ganz fett hier, und es ist. 95 00:50:03,250 --> 00:50:06,540 Aber Konzept weise, es ist ziemlich vertraut aus der Zeit vor. 96 00:50:06,540 --> 00:50:09,370 Wenn x kleiner als y ist, als sagen, wie viel. 97 00:50:09,370 --> 00:50:12,230 Else, wenn x größer ist als y, sagen dann so viel. 98 00:50:12,230 --> 00:50:14,260 Else sagen x zu y gleich ist. 99 00:50:14,260 --> 00:50:17,220 So haben wir ein Beispiel dort einer dritten scenario-- 100 00:50:17,220 --> 00:50:20,600 die einzige dritte possibility-- x entweder größer als, kleiner als oder gleich. 101 00:50:20,600 --> 00:50:22,420 So haben wir eine Drei-Wege-Gabel in der Straße. 102 00:50:22,420 --> 00:50:26,290 >> Und bemerken, was ist cool hier-- Scratch, wie es scheint, hat nur ein Puzzle 103 00:50:26,290 --> 00:50:28,840 Stück, in diesem Fall, wenn auch Block. 104 00:50:28,840 --> 00:50:32,090 Und doch wäre das scheint Sie zu implizieren nur haben eine Zwei-Wege-Gabel in der Straße. 105 00:50:32,090 --> 00:50:34,631 Sie können links oder rechts gehen, aber was ist mit dem dritten Szenario? 106 00:50:34,631 --> 00:50:35,760 Was ist, wenn x gleich y? 107 00:50:35,760 --> 00:50:36,500 Keine große Sache. 108 00:50:36,500 --> 00:50:39,640 Nehmen Sie ein Puzzleteil, setzen ein anderer in der es 109 00:50:39,640 --> 00:50:45,759 die semantische Äquivalent zu schaffen Sie if, else, wenn else-- und jetzt 110 00:50:45,759 --> 00:50:47,300 haben Ihre Drei-Wege-Gabel in der Straße. 111 00:50:47,300 --> 00:50:49,091 sehen und wie wir, die Scratch Puzzleteile 112 00:50:49,091 --> 00:50:51,820 gestreckt werden und wachsen können, so wie, um mehr Sachen in ihnen stopfen. 113 00:50:51,820 --> 00:50:54,420 Sie müssen nicht passen alles in seiner Standardgröße. 114 00:50:54,420 --> 00:50:56,690 >> Das ist etwas, wir werden Bis bald wird ein Array bezeichnet. 115 00:50:56,690 --> 00:51:00,880 Es ist wie ein list-- ein Weg gefunden Speichern von mehreren Informationen 116 00:51:00,880 --> 00:51:02,886 in einer Variablen, nicht nur eine Reihe. 117 00:51:02,886 --> 00:51:05,760 Diese werden wir sehen, ein Vertreter der so genannte Multi-Threading. 118 00:51:05,760 --> 00:51:08,280 In der Tat, alle Ihre Macs und PCs in diesen Tagen 119 00:51:08,280 --> 00:51:10,810 Unterstützung für Multi-Threading, Das bedeutet, Sie können buchstäblich 120 00:51:10,810 --> 00:51:12,390 tun mehrere Dinge auf einmal. 121 00:51:12,390 --> 00:51:15,390 Sie können Microsoft Word haben bis in die Vordergrund, auf einige Essay arbeiten. 122 00:51:15,390 --> 00:51:17,160 Sie könnten einen Browser im Hintergrund Öffnung 123 00:51:17,160 --> 00:51:18,720 G-Mail oder Facebook oder dergleichen. 124 00:51:18,720 --> 00:51:22,730 Ihr Computer kann mehrere Dinge tun heute, weil es multi-threaded ist, 125 00:51:22,730 --> 00:51:26,390 und Programme, die sie sind in in Insbesondere sind auch mit mehreren Threads. 126 00:51:26,390 --> 00:51:28,970 >> Es gibt Dinge genannt Ereignisse wie gut in der Welt von Scratch, 127 00:51:28,970 --> 00:51:32,640 und dann gibt es eine Möglichkeit, auch zu machen unsere eigene Puzzle-Teile, wenn die Dinge 128 00:51:32,640 --> 00:51:34,810 eigentlich gar nicht im Voraus existieren. 129 00:51:34,810 --> 00:51:38,260 Also lassen Sie uns dies motivieren wie folgt. 130 00:51:38,260 --> 00:51:40,580 Vor einigen Jahren, als ich zuerst entdeckt Scratch, 131 00:51:40,580 --> 00:51:43,530 als ich war eigentlich ein Doktorand am MIT, wir 132 00:51:43,530 --> 00:51:45,640 uns wurden zu machen Hausaufgaben beauftragt. 133 00:51:45,640 --> 00:51:47,614 Und ich implemented-- die im Nachhinein 134 00:51:47,614 --> 00:51:50,780 eine sehr schlechte Entscheidung war, weil es das ärgerliche Lied der Welt 135 00:51:50,780 --> 00:51:53,321 bis acht Stunden hört während der Arbeit an Ihrem homework-- 136 00:51:53,321 --> 00:51:57,180 aber etwas, das ich hatte Oscar Zeit genannt, Das ist vielleicht ein bekanntes Lied. 137 00:51:57,180 --> 00:51:59,820 >> CS50s besitzen Jordan Hayashi, von unsere mehr leitende Mitarbeiter, 138 00:51:59,820 --> 00:52:03,920 hat es für das Jahr 2015 aktualisiert und jetzt 2016, da wieder in den Tag, 139 00:52:03,920 --> 00:52:06,610 Ich hatte alles, was gerade los in Mülleimer Oscar. 140 00:52:06,610 --> 00:52:09,320 Jetzt unterstützen wir das Recycling und Kompostierung. 141 00:52:09,320 --> 00:52:12,050 >> Aber malen das Bild von dem, was wir hier tun 142 00:52:12,050 --> 00:52:14,130 und zu motivieren, einige die untere Ebene Beispiele, 143 00:52:14,130 --> 00:52:16,400 könnten wir eine andere bekommen Freiwilliger nur kommen auf bis 144 00:52:16,400 --> 00:52:18,331 und spielen meine erste Hausaufgabe aller Zeiten? 145 00:52:18,331 --> 00:52:18,830 Komm rauf. 146 00:52:18,830 --> 00:52:19,250 Wie heißen Sie? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID MALAN: Henry, kommen auf. 149 00:52:22,660 --> 00:52:24,190 Komm rauf. 150 00:52:24,190 --> 00:52:27,070 Gehen Sie so oder so, und Sie werden in einem Moment zu sehen, 151 00:52:27,070 --> 00:52:29,870 Ich gehe voran zu gehen und drücken Sie die grüne Fahne in der rechten oberen 152 00:52:29,870 --> 00:52:31,100 Ecke, was bedeutet, zu gehen. 153 00:52:31,100 --> 00:52:33,320 Der kleine Stop-Schild-Symbol geht Stopp zu sagen, 154 00:52:33,320 --> 00:52:35,490 und das ist, wenn Sie beginnen, und das Programm zu stoppen. 155 00:52:35,490 --> 00:52:36,450 Schön dich zu treffen. 156 00:52:36,450 --> 00:52:36,950 Gut. 157 00:52:36,950 --> 00:52:39,100 So werden wir die Anweisungen zu sehen auf dem Bildschirm in nur einem Augenblick. 158 00:52:39,100 --> 00:52:41,450 Und gerade durch dieses Spiel zu spielen für ein paar mich seconds-- vertrauen, 159 00:52:41,450 --> 00:52:43,670 wir gehen zu wollen, nicht zu spielen den ganzen Weg zum end-- werden Sie 160 00:52:43,670 --> 00:52:45,470 bekommen ein Gefühl von dem, was das Programm macht. 161 00:52:45,470 --> 00:52:49,170 Und mehr als nur auf Henry konzentrieren gut oder schlecht an diesem Spiel Fokus 162 00:52:49,170 --> 00:52:52,600 und wie wurde es von mir umgesetzt ursprünglich und dann von Jordan. 163 00:52:52,600 --> 00:52:54,640 Mit anderen Worten, wo die Variablen? 164 00:52:54,640 --> 00:52:55,520 Wo sind die Schleifen? 165 00:52:55,520 --> 00:52:56,520 Wo sind die Funktionen? 166 00:52:56,520 --> 00:53:00,700 Und wir werden sehen, ob wir nicht sehen diejenigen unter der Haube. 167 00:53:00,700 --> 00:53:03,660 >> Klicken und Ziehen Sie einfach Müll an den entsprechenden Behälter. 168 00:53:03,660 --> 00:54:02,100 >> [MUSIK SPIELEN] 169 00:54:02,100 --> 00:54:02,600 Gut. 170 00:54:02,600 --> 00:54:03,160 Das ist sehr gut. 171 00:54:03,160 --> 00:54:04,286 Warum wir es nicht dort zu stoppen. 172 00:54:04,286 --> 00:54:04,786 Vielen Dank. 173 00:54:04,786 --> 00:54:05,830 Herzlichen Glückwunsch an Henry. 174 00:54:05,830 --> 00:54:07,002 Vielen Dank. 175 00:54:07,002 --> 00:54:10,690 >> [BEIFALL] 176 00:54:10,690 --> 00:54:12,450 >> Man stelle sich vor, das Programm debuggen. 177 00:54:12,450 --> 00:54:15,880 Wenn es ein Problem gibt zwei Minuten in die song-- aber so 178 00:54:15,880 --> 00:54:17,430 was geht hier wirklich auf? 179 00:54:17,430 --> 00:54:20,900 So kompliziert, wie es könnte beginnen zu scheinen im Laufe der Zeit zu bekommen, 180 00:54:20,900 --> 00:54:22,910 tatsächlich mehr und mehr Sachen zu fallen begannen, 181 00:54:22,910 --> 00:54:25,370 was ist interessant diese Art von example-- 182 00:54:25,370 --> 00:54:27,270 und wir werden ein paar sehen Andere-- ist, dass, wenn Sie 183 00:54:27,270 --> 00:54:30,416 schauen Sie vorbei an der Komplexität oder die Komplexität des Spiels, 184 00:54:30,416 --> 00:54:33,040 es ist ein sehr einfaches Gebäude Blöcke, von denen alle play--, 185 00:54:33,040 --> 00:54:35,840 wenn Sie destillieren sie denen Bausteine ​​sind sehr zugänglich 186 00:54:35,840 --> 00:54:37,401 und implementierbar zu sich selbst. 187 00:54:37,401 --> 00:54:39,150 Zum Beispiel ist es einige Zeit, aber ich bin 188 00:54:39,150 --> 00:54:42,900 ziemlich sicher, was anfangs tat ich, als machen dieses Spiel zum ersten Mal 189 00:54:42,900 --> 00:54:44,787 vollständig procrastinated wie ich war. 190 00:54:44,787 --> 00:54:47,120 Ich habe überhaupt nicht auf das konzentrieren Logik oder die Puzzleteile, 191 00:54:47,120 --> 00:54:50,810 Ich konzentrierte mich auf die Grafik und Finden die Straße Post und die Mülleimer 192 00:54:50,810 --> 00:54:51,540 und das alles. 193 00:54:51,540 --> 00:54:53,456 Aber das waren erforderlichen Zutaten auf den ersten. 194 00:54:53,456 --> 00:54:57,220 Und sobald ich fertig zaudern und Auslegen der übergeordneten Rahmen, 195 00:54:57,220 --> 00:55:00,337 Ich beschloss, lassen Sie mich nur eine machen Stück Abfall vom Himmel fallen. 196 00:55:00,337 --> 00:55:02,170 Und wir werden sehen, Scratch unterstützt die Dinge genannt 197 00:55:02,170 --> 00:55:06,386 sprites-- Zeichen, die haben unterschiedliche Kostüme auf, so dass sie 198 00:55:06,386 --> 00:55:07,010 anders aussehen. 199 00:55:07,010 --> 00:55:09,660 >> Und so habe ich einen Müll Kostüm auf einem solchen Sprite. 200 00:55:09,660 --> 00:55:12,007 Und ich es brauchte nur vom Himmel zu fallen. 201 00:55:12,007 --> 00:55:14,590 Und so stellt sich heraus, Scratch, wie die meisten Programmiersprachen, 202 00:55:14,590 --> 00:55:18,099 unterstützt Zufallszahlen oder technisch Pseudozufallszahlen, 203 00:55:18,099 --> 00:55:20,390 so dass durch Ziehen und fallen bestimmte Puzzleteile, 204 00:55:20,390 --> 00:55:22,890 Ich war in der Lage, den Müll zu haben kommen von der linken Seite auf den ersten. 205 00:55:22,890 --> 00:55:25,580 Und dann das nächste Mal, es fiel aus rechts und dann von der Mitte. 206 00:55:25,580 --> 00:55:28,060 Und das ganze Spiel tat, war nur haben Müll vom Himmel fallen. 207 00:55:28,060 --> 00:55:29,770 Man konnte sich nicht auf sie oder klicken Sie darauf hinweisen. 208 00:55:29,770 --> 00:55:31,103 Sie könnten den Mülleimer nicht öffnen. 209 00:55:31,103 --> 00:55:32,160 Sie konnte nichts tun. 210 00:55:32,160 --> 00:55:34,450 Aber es war ein Baby Schritt zu meiner ultimative Vision. 211 00:55:34,450 --> 00:55:36,720 >> Und danach, habe ich eigentlich eine Art umgesetzt 212 00:55:36,720 --> 00:55:41,230 des Erfassens, so dass, wenn Sie klicken haben und ziehen Sie auf das Stück Müll 213 00:55:41,230 --> 00:55:44,350 über den Mülleimer, Oscar Deckel würde öffnen und schließen. 214 00:55:44,350 --> 00:55:47,650 Nichts würde passieren, in den Papierkorb, aber zumindest würde sich der Deckel öffnen und schließen. 215 00:55:47,650 --> 00:55:49,642 So prüfen Sie, Schritt zwei von zwei Kindern. 216 00:55:49,642 --> 00:55:52,100 Und das ist, was los zu sein Schlüssel in beide Problem auf Null gesetzt 217 00:55:52,100 --> 00:55:55,970 und in der Programmierung allgemeiner ist nehmen diese sehr bewusste Baby-Schritte. 218 00:55:55,970 --> 00:55:59,390 Denn nicht nur, dass es ermöglicht es Ihnen, wirklich das Gefühl, erreicht viel mehr 219 00:55:59,390 --> 00:56:01,250 quickly-- es ist die Schlimmste, was in der Welt 220 00:56:01,250 --> 00:56:06,149 zu versuchen, alle Oscar-Zeit zu implementieren, dann traf Stunden später die grüne Fahne, 221 00:56:06,149 --> 00:56:08,440 und nichts funktioniert wie erwartet denn wo tun Sie auch 222 00:56:08,440 --> 00:56:11,150 beginnen zu debuggen oder zu das Programm zu beheben? 223 00:56:11,150 --> 00:56:12,470 Es ist einfach überwältigend. 224 00:56:12,470 --> 00:56:16,792 >> Und so wirklich umarmen diese Idee der Einnahme steps-- Baby-Schritte wieder 225 00:56:16,792 --> 00:56:19,000 und again-- Aufbau etwas, das, am Ende ist, 226 00:56:19,000 --> 00:56:23,672 wirklich beeindruckend und komplex, aber Zunächst ist bei weitem nicht so sehr. 227 00:56:23,672 --> 00:56:24,630 In der Tat, lassen Sie uns dies tun. 228 00:56:24,630 --> 00:56:28,989 Lassen Sie mich gehen Sie voran und- sich Scratch existiert im Internet unter Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 und Sie werden gesagt, als viel wieder in Problem 230 00:56:30,780 --> 00:56:34,200 auf Null gesetzt, die Spezifikation für die bereits auf CS50-Website. 231 00:56:34,200 --> 00:56:35,725 >> Aber das ist, was Scratch selbst ist. 232 00:56:35,725 --> 00:56:38,210 Und es ist wirklich nur drei Hauptbereiche. 233 00:56:38,210 --> 00:56:40,980 An der Spitze gibt links ist die sogenannte Phase. 234 00:56:40,980 --> 00:56:41,810 Dies ist Scratch. 235 00:56:41,810 --> 00:56:43,710 Die Standard-Kostüm ist eine Katze. 236 00:56:43,710 --> 00:56:46,950 Und dies ist der rechteckige Welt welche Sie move-- kann, unten, links, 237 00:56:46,950 --> 00:56:48,130 Recht und einige andere Sachen. 238 00:56:48,130 --> 00:56:51,839 In der Mitte hier sind unsere Kategorien oder unsere Paletten der Puzzleteile, 239 00:56:51,839 --> 00:56:53,630 und verschiedenen Farben verschiedene Dinge bedeuten. 240 00:56:53,630 --> 00:56:56,520 Und wenn man sich stoßen, werden Sie sehen, Dinge wie Schleifen und Bedingungen 241 00:56:56,520 --> 00:56:58,160 und Variablen und anderen Zutaten. 242 00:56:58,160 --> 00:57:00,060 >> Und dann hier über die Skripte Bereich. 243 00:57:00,060 --> 00:57:03,020 Dies ist, wo ich ziehen und fallen lassen diese Puzzleteile Dinge zu tun. 244 00:57:03,020 --> 00:57:04,690 Also lassen Sie uns eine solche Sache zu tun. 245 00:57:04,690 --> 00:57:06,630 Lassen Sie mich voran gehen und- und ich weiß, wo es ist. 246 00:57:06,630 --> 00:57:10,110 Also werde ich sofort an zu klicken wo ich weiß, sind die Dinge bereit zu sein, 247 00:57:10,110 --> 00:57:13,140 aber Zeigen und Klicken und Stossen sind um unvermeidlich. 248 00:57:13,140 --> 00:57:15,320 Also, wenn grüne Fahne geklickt haben, Was will ich tun? 249 00:57:15,320 --> 00:57:17,100 Ich werde dies zu tun. 250 00:57:17,100 --> 00:57:20,699 Ich werde diese lila Rätsel zu ziehen Stück, sagen hallo zwei Sekunden, 251 00:57:20,699 --> 00:57:21,490 und lassen Sie mich zoomen. 252 00:57:21,490 --> 00:57:23,865 >> Und ich werde dies zu ändern zu sein, was ich will es be-- 253 00:57:23,865 --> 00:57:26,471 Hallo Welt zwei Sekunden ist in Ordnung. 254 00:57:26,471 --> 00:57:28,970 Nun, ich werde das zu klicken grüne Flagge, oder wenn ich wirklich will, 255 00:57:28,970 --> 00:57:31,820 Ich kann es den gesamten Bildschirm und kommen dann zurück. 256 00:57:31,820 --> 00:57:34,060 Es wird nur halten alles in einem Fenster. 257 00:57:34,060 --> 00:57:36,141 Grüne flag-- Hallo Welt. 258 00:57:36,141 --> 00:57:36,640 Gut. 259 00:57:36,640 --> 00:57:38,789 Nicht alles, was interessant. 260 00:57:38,789 --> 00:57:40,080 Also lassen Sie mich gehen Sie vor und tun dies. 261 00:57:40,080 --> 00:57:41,038 Lassen Sie mich ein anderes versuchen. 262 00:57:41,038 --> 00:57:44,740 Wenn grüne Flagge clicked-- lasst uns tun so etwas wie ein Ton. 263 00:57:44,740 --> 00:57:46,880 Und feststellen, dass aus die Box kostenlos Sie erhalten 264 00:57:46,880 --> 00:57:49,910 eine Katze Sound, wie die Standard-Sprite. 265 00:57:49,910 --> 00:57:52,380 Also lassen Sie mich jetzt gehen Sie vor und schlagen jetzt die grüne Fahne. 266 00:57:52,380 --> 00:57:53,224 >> [Miauen] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Das ist bezaubernd. 269 00:57:55,370 --> 00:57:57,040 Ich programmiere. 270 00:57:57,040 --> 00:57:58,550 Also, was habe ich getan? 271 00:57:58,550 --> 00:58:00,430 Dies ist das Äquivalent eines Programms. 272 00:58:00,430 --> 00:58:01,600 Es ist natürlich super einfach. 273 00:58:01,600 --> 00:58:05,300 Es dauerte wirklich nicht nehmen so viel Aufwand und MIT haben die meiste Arbeit, 274 00:58:05,300 --> 00:58:07,890 aber ich habe eine Funktion aufgerufen. 275 00:58:07,890 --> 00:58:08,940 Ich habe eine Funktion verwendet. 276 00:58:08,940 --> 00:58:12,480 Ich habe eine Aktion gemacht, mit nur dass ein lila Puzzleteil. 277 00:58:12,480 --> 00:58:15,960 >> Nun, wenn ich tun möchte, drei miaut in einer Reihe? 278 00:58:15,960 --> 00:58:18,570 Lassen Sie mich gehen Sie vor und tun zwei und drei. 279 00:58:18,570 --> 00:58:20,910 Und feststellen, dass, wenn Sie schweben in der Nähe ein Puzzleteil, 280 00:58:20,910 --> 00:58:22,970 eine kleine weiße Linie erscheint Art von magnetisch, 281 00:58:22,970 --> 00:58:25,190 und es wird Snap zusammen, wenn Sie loslassen. 282 00:58:25,190 --> 00:58:26,600 Mal sehen, was hier passiert. 283 00:58:26,600 --> 00:58:27,920 >> [Miauen] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Es ist ein Fehler. 286 00:58:34,510 --> 00:58:35,650 Ich höre nur ein miauen. 287 00:58:35,650 --> 00:58:37,440 Warum könnte das sein? 288 00:58:37,440 --> 00:58:39,001 Ja? 289 00:58:39,001 --> 00:58:39,500 Ja. 290 00:58:39,500 --> 00:58:41,650 Wir wissen nicht wirklich hören, aber das ist eine gute Intuition. 291 00:58:41,650 --> 00:58:43,400 Sie sind alle in der gleichen Zeit zu spielen. 292 00:58:43,400 --> 00:58:44,000 Warum? 293 00:58:44,000 --> 00:58:46,587 Nun ist der Computer nur gehen zu tun, was Sie es zu tun erzählen. 294 00:58:46,587 --> 00:58:48,670 Also, wenn Sie sagen, spielen Sound, Ton abspielen, spielen Sound, 295 00:58:48,670 --> 00:58:52,887 aber Sie sagen, dass es nicht zu spielen, bis Sie fertig sind, spielen, bis Sie fertig sind, 296 00:58:52,887 --> 00:58:54,970 es geht zu durchblasen das Programm wirklich schnell 297 00:58:54,970 --> 00:58:56,830 und tun nur das, was Sie sagen, es zu tun. 298 00:58:56,830 --> 00:58:59,040 >> Also muss ich eigentlich zu beheben dies in einer Reihe von Möglichkeiten. 299 00:58:59,040 --> 00:59:00,623 Ich konnte dies nur tun, loszuwerden diese. 300 00:59:00,623 --> 00:59:04,180 Lassen Sie mich das andere Rätsel versuchen piece-- spielen Sound miauen, bis getan, 301 00:59:04,180 --> 00:59:07,072 und ziehen Sie dann drei diese und klicken Sie auf Wiedergabe. 302 00:59:07,072 --> 00:59:09,430 >> [Miauen] 303 00:59:09,430 --> 00:59:13,350 >> Es ist nicht wirklich very-- Dank Sie-- sehr natürlich. 304 00:59:13,350 --> 00:59:16,590 Also warum i-- lassen Sie sich nicht mich gehen hier steuern. 305 00:59:16,590 --> 00:59:17,090 Nett. 306 00:59:17,090 --> 00:59:22,230 Warten Sie eine Sekunde, und mich jetzt loslassen zurück auf Geräusche und Sound abspielen, bis getan, 307 00:59:22,230 --> 00:59:24,620 und lassen Sie mich dann 1 Sekunde warten zu bekommen. 308 00:59:24,620 --> 00:59:28,692 Und dann lassen Sie mich zu gehen und einen bekommen mehr Sound, und hier gehen wir. 309 00:59:28,692 --> 00:59:31,350 >> [Miauen] 310 00:59:31,350 --> 00:59:35,930 >> Ein wenig mehr natürlich, aber Dies ist nicht sehr effizient. 311 00:59:35,930 --> 00:59:39,830 Wie ich war langweilig, alle sein Anklicken kurz hin und her 312 00:59:39,830 --> 00:59:42,724 und wirklich duplizieren meine work-- so ziemlich das Kopieren und Einfügen. 313 00:59:42,724 --> 00:59:44,640 Ja, wenn ich Steuern geklickt oder rechts geklickt haben, 314 00:59:44,640 --> 00:59:46,500 Ich hätte einfach kopiert und eingefügt. 315 00:59:46,500 --> 00:59:49,870 Was wäre ein zu verwenden, besser konstruieren? 316 00:59:49,870 --> 00:59:51,090 Was Idee aus der Zeit vor? 317 00:59:51,090 --> 00:59:51,990 >> Ja, so eine Schleife. 318 00:59:51,990 --> 00:59:54,580 Und in der Tat, wenn wir stocherte, wir können feststellen, genau das. 319 00:59:54,580 --> 00:59:57,730 Lassen Sie mich an Ereignisse oder eher Kontrolle gehen. 320 00:59:57,730 --> 00:59:59,650 So repeat-- ich nicht wollen sie 10-mal sein. 321 00:59:59,650 --> 01:00:01,370 Das wird ärgerlich schnell. 322 01:00:01,370 --> 01:00:03,380 Aber ich werde dreimal wiederholen. 323 01:00:03,380 --> 01:00:06,355 Lassen Sie mich gehen zurück zu klingen und spielen den Ton, bis es fertig ist. 324 01:00:06,355 --> 01:00:08,480 Lassen Sie mich an Kontrolle zurück und nur eine Sekunde warten. 325 01:00:08,480 --> 01:00:10,271 Und beachten Sie, könnten Sie denke, es nicht passt, 326 01:00:10,271 --> 01:00:13,520 aber wieder magnetisch, wenn Sie es zulassen Snap an Ort und Stelle, wird wachsen, um sie zu füllen. 327 01:00:13,520 --> 01:00:14,971 Was ist es jetzt spielen? 328 01:00:14,971 --> 01:00:18,500 >> [Miauen] 329 01:00:18,500 --> 01:00:19,000 OK. 330 01:00:19,000 --> 01:00:19,660 Nett. 331 01:00:19,660 --> 01:00:22,540 Und das ist, was man würde ein Programm, das auch richtig ist. 332 01:00:22,540 --> 01:00:27,590 Es miaute dreimal ziemlich natürlich, aber es ist besser gestaltet. 333 01:00:27,590 --> 01:00:29,580 Ich bin mit weniger Redundanz. 334 01:00:29,580 --> 01:00:30,970 Ich habe nicht kopieren und etwas einfügen. 335 01:00:30,970 --> 01:00:32,470 Früher habe ich nur eine bessere Idee. 336 01:00:32,470 --> 01:00:35,340 >> Nun, dies ist noch nicht alles, was interessant, mit Scratch nicht zu tun 337 01:00:35,340 --> 01:00:35,930 etwas. 338 01:00:35,930 --> 01:00:37,388 Also lassen Sie uns stattdessen etwas anderes zu tun. 339 01:00:37,388 --> 01:00:38,670 Lassen Sie uns immer etwas tun. 340 01:00:38,670 --> 01:00:39,420 Und weisst du was? 341 01:00:39,420 --> 01:00:40,470 Bewegung scheint interessant. 342 01:00:40,470 --> 01:00:45,760 Lassen Sie uns haben ihn 10 bewegen Schritte und treffen jetzt zu spielen. 343 01:00:45,760 --> 01:00:46,570 >> OK. 344 01:00:46,570 --> 01:00:49,300 Nun können wir Art von Drag ihn zurück, und er ist immer noch 345 01:00:49,300 --> 01:00:51,250 Laufen, weil er dies für immer tun wird. 346 01:00:51,250 --> 01:00:53,150 So wird die Schleife zu tun was es sagt zu tun, 347 01:00:53,150 --> 01:00:54,650 aber dies ist nicht so interessant. 348 01:00:54,650 --> 01:00:55,310 Lass uns das machen. 349 01:00:55,310 --> 01:00:59,870 Lassen Sie mich einen Steuerblock hinzufügen, und verwenden Sie ein dieser Bedingungen zum ersten Mal. 350 01:00:59,870 --> 01:01:03,119 >> Also es geht um 10 steps-- zu bewegen 10 Punkte, 10 Punkte auf dem screen-- 351 01:01:03,119 --> 01:01:04,660 dann werde es diese Frage stellen. 352 01:01:04,660 --> 01:01:09,340 Wenn etwas wahr ist, dann tun etwas in diesem Block. 353 01:01:09,340 --> 01:01:13,060 So stellt sich heraus Sensing hat eine ganze Bündel von Booleschen expressions-- 354 01:01:13,060 --> 01:01:16,580 Fragen der ja nein oder wahr falsche form-- lassen mich das tun. 355 01:01:16,580 --> 01:01:19,260 >> Wenn touching-- und dann gibt es dieser kleine Drop-Down-Menü. 356 01:01:19,260 --> 01:01:20,410 Ich kann es parametrieren. 357 01:01:20,410 --> 01:01:23,010 Wenn die Berührung edge-- lasst uns tun so etwas. 358 01:01:23,010 --> 01:01:27,310 Also, wenn berühren edge-- Lassen Sie mich auf die Bewegung zurück. 359 01:01:27,310 --> 01:01:32,281 Und warum tun wir nicht einfach drehen sich um 180 Grad? 360 01:01:32,281 --> 01:01:32,780 Gut. 361 01:01:32,780 --> 01:01:35,070 Also immer, 10 Stufen bewegen. 362 01:01:35,070 --> 01:01:37,670 Wenn Sie berühren die Kante, um 180 Grad drehen. 363 01:01:37,670 --> 01:01:39,720 Und das ist nicht das Ende des Programms weil Sie in einem für immer blockieren sind, 364 01:01:39,720 --> 01:01:42,053 so es geht, wieder zu gehen und wieder und wieder und wieder. 365 01:01:42,053 --> 01:01:43,980 Also mal sehen, was passiert. 366 01:01:43,980 --> 01:01:44,785 OK. 367 01:01:44,785 --> 01:01:48,270 Ein kleiner Buggy, aber irgendwie cool. 368 01:01:48,270 --> 01:01:51,710 >> Und wir können einige dumme Dinge diesem hinzufügen Das sind nicht alles, was intellektuell 369 01:01:51,710 --> 01:01:52,270 interessant. 370 01:01:52,270 --> 01:01:57,210 Aber wenn wir schlagen diese kleine Mikrofon button-- autsch. 371 01:01:57,210 --> 01:01:58,480 Lassen Sie mich diese aufzuräumen. 372 01:01:58,480 --> 01:02:01,540 Lassen Sie mich verbessern dies als sie würden im Fernsehen sagen. 373 01:02:01,540 --> 01:02:05,400 Reinigen Sie, dass bis, Speichern und jetzt gehen, um Skripts auf. 374 01:02:05,400 --> 01:02:07,500 >> Und jetzt lassen Sie mich klingen zu gehen. 375 01:02:07,500 --> 01:02:09,002 Lassen Sie mich es einen Namen geben. 376 01:02:09,002 --> 01:02:12,440 Ich werde diese ouch nennen. 377 01:02:12,440 --> 01:02:13,840 Und jetzt Sound autsch spielen. 378 01:02:13,840 --> 01:02:16,520 Beachten Sie es in das erscheint wenig Drop-Down-Menü. 379 01:02:16,520 --> 01:02:17,612 Mal schauen. 380 01:02:17,612 --> 01:02:20,444 >> [AUTSCH] 381 01:02:20,444 --> 01:02:24,377 >> [LACHEN] 382 01:02:24,377 --> 01:02:25,835 Aber wir können im laufenden Betrieb t seine ändern. 383 01:02:25,835 --> 01:02:28,106 Wir können doppelt so lästig sein. 384 01:02:28,106 --> 01:02:31,760 >> [AUTSCH] 385 01:02:31,760 --> 01:02:35,332 >> Oder wenn wir es wie 1000 Stufen auf Zeit-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> OK. 388 01:02:40,670 --> 01:02:42,295 Wir werden also, dass man in Ruhe zu lassen. 389 01:02:42,295 --> 01:02:45,290 Also noch einmal, den Bau blocks-- I begann mit etwas super einfach, 390 01:02:45,290 --> 01:02:47,930 und dann habe ich eine Funktion, hinzugefügt, um eine Funktion, eine Funktion hinzugefügt. 391 01:02:47,930 --> 01:02:50,721 Und ich brauche nicht mehr zu befürchten wie die erste dieser Merkmale 392 01:02:50,721 --> 01:02:53,690 als ich realisiert fortsetzen Dinge auf der Oberseite der Schicht. 393 01:02:53,690 --> 01:02:55,430 Also in der Tat, lassen Sie mich hier ein anderer tun. 394 01:02:55,430 --> 01:03:00,580 Lassen Sie mich gehen Sie vor und eine Datei öffnen, Ich habe im Voraus, die so genannte Schafe. 395 01:03:00,580 --> 01:03:03,970 >> So hat es eine etwas andere Zeichen, das wie folgt aussieht. 396 01:03:03,970 --> 01:03:07,370 Und lassen Sie mich sehen, wenn ich kann nicht etwas zu tun mit einem Zähler 397 01:03:07,370 --> 01:03:09,310 in dieser Fall-- eine sogenannte Variable. 398 01:03:09,310 --> 01:03:15,540 Ich werde weitermachen und unter Events-- lassen Sie mich eine grüne Fahne geklickt bekommen. 399 01:03:15,540 --> 01:03:19,030 Dann lassen Sie mich auf Daten gehen, die ich kenne, vom Spielen um kurz vor, 400 01:03:19,030 --> 01:03:20,214 ist, wo Variablen sind. 401 01:03:20,214 --> 01:03:21,880 Und ich werde weitermachen und diese ziehen. 402 01:03:21,880 --> 01:03:25,144 >> So eine Variable namens Zähler, und Ich werde es auf Null zu initialisieren. 403 01:03:25,144 --> 01:03:27,560 Ich kann es nennen anything-- x oder y oder z-- aber in der Programmierung, 404 01:03:27,560 --> 01:03:30,410 etwas in einem semantisch Aufruf nützliche Art und Weise, wie Zähler, 405 01:03:30,410 --> 01:03:34,540 das beschreibt, was es ist, es ist ein viel einfacher, Ihren Code später zu lesen. 406 01:03:34,540 --> 01:03:37,460 Lassen Sie mich gehen Sie vor und bekommen ein für immer blockieren hier. 407 01:03:37,460 --> 01:03:41,289 Und lassen Sie mich zu den Blicken gehen Seite und machen Sie einen Say Block. 408 01:03:41,289 --> 01:03:44,330 Aber was Variablen cool ist I haben nicht nur in etwas zu geben 409 01:03:44,330 --> 01:03:47,850 wie hallo Welt, die wir bereits haben getan, kann ich Daten gehen statt 410 01:03:47,850 --> 01:03:50,690 und ziehen Sie meine Variable und sogar obwohl die Form nicht ganz 411 01:03:50,690 --> 01:03:53,000 wie es aussehen sollte passen, es wird wachsen zu füllen. 412 01:03:53,000 --> 01:03:58,396 Und ich werde einfach sagen, den Zähler für ein second-- spoiler-- er wird zu zählen. 413 01:03:58,396 --> 01:04:00,380 Wir sagen es noch für eine Sekunde. 414 01:04:00,380 --> 01:04:02,840 Ich werde dann gehen und haben ihn für eine Sekunde warten, 415 01:04:02,840 --> 01:04:04,650 so es zählt nicht zu schnell nach oben. 416 01:04:04,650 --> 01:04:08,430 Und dann schließlich ändern Zähler durch one-- in anderen Worten, 417 01:04:08,430 --> 01:04:13,520 inkrementiert den Zähler um eins Mehrwert und machen immer dies. 418 01:04:13,520 --> 01:04:16,129 >> So ist es auch die Schafe, wie ein Programmierer, zählt von 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Und wenn wir lange genug warten, Er wird dies für immer. 421 01:04:23,740 --> 01:04:27,740 Aber das ist nicht ganz richtig, denn in der Tat, wie wir in der Woche entdecken werden ein, 422 01:04:27,740 --> 01:04:31,871 ganze Zahlen und Computer allgemeiner technisch nur finite-- gut ein, 423 01:04:31,871 --> 01:04:33,829 eher Computer, wenn sie ganze Zahlen, 424 01:04:33,829 --> 01:04:35,670 nur eine endliche Anzahl von Bits. 425 01:04:35,670 --> 01:04:37,860 Diese Glühbirnen gibt kann nur so hoch, zählen 426 01:04:37,860 --> 01:04:39,239 bevor Sie von Glühbirnen sind. 427 01:04:39,239 --> 01:04:41,590 Und ein Computer an, nur so viel Speicher, 428 01:04:41,590 --> 01:04:44,640 nur so viele Transistoren hat, so kann es nur so hoch zu zählen. 429 01:04:44,640 --> 01:04:47,409 >> So stellt sich heraus, dass die Schafe, Ich denke, kann bis zu 2 Milliarden rechnen 430 01:04:47,409 --> 01:04:48,409 oder etwas ziemlich groß. 431 01:04:48,409 --> 01:04:50,325 So gehen wir nicht zu warten damit dies geschehen kann. 432 01:04:50,325 --> 01:04:54,850 Aber irgendwann werden einige Fehler passieren das kann eine sehr reale Welt 433 01:04:54,850 --> 01:04:55,970 Verzweigungen. 434 01:04:55,970 --> 01:04:58,861 Aber über die Schafe, dass stellt nur eine Variable. 435 01:04:58,861 --> 01:05:01,110 Fahren wir fort und eröffnen etwas habe ich im Voraus 436 01:05:01,110 --> 01:05:07,430 hier genannt Pet die Cat-- Pet die Katze hier. 437 01:05:07,430 --> 01:05:10,420 Und hier bemerken es wenige Blöcke, aber wenn grüne Flagge 438 01:05:10,420 --> 01:05:12,474 geklickt haben, immer die folgende tun. 439 01:05:12,474 --> 01:05:15,265 Wenn Sie berühren die Maus pointer-- so den Cursor auf dem Bildschirm, 440 01:05:15,265 --> 01:05:18,529 die arrow-- Spiel Sound miauen und dann zwei Sekunden warten. 441 01:05:18,529 --> 01:05:19,570 Und dies ist nur für immer tun. 442 01:05:19,570 --> 01:05:22,619 Nur ständig warten wenn der pointer-- zu sehen 443 01:05:22,619 --> 01:05:24,710 wenn die Katze berührt den Zeiger. 444 01:05:24,710 --> 01:05:26,060 >> Also schlug ich zu spielen. 445 01:05:26,060 --> 01:05:26,920 Nichts passiert. 446 01:05:26,920 --> 01:05:28,980 Aber als ich den Cursor über die Katze bewegen, 447 01:05:28,980 --> 01:05:31,960 >> [Miauen] 448 01:05:31,960 --> 01:05:34,750 >> Und wenn ich es weg bewegen, nicht die Katze Petting mehr. 449 01:05:34,750 --> 01:05:38,090 So einige bedingte Logik innerhalb einer Schleife verschachtelt sind. 450 01:05:38,090 --> 01:05:43,070 Wie wäre es dieses Beispiel absichtlich Haustier Sie nicht die Katze genannt? 451 01:05:43,070 --> 01:05:45,253 Was geht dies zu tun? 452 01:05:45,253 --> 01:05:47,880 >> [Miauen] 453 01:05:47,880 --> 01:05:50,215 >> Warum sollten Sie nicht die Katze streicheln? 454 01:05:50,215 --> 01:05:59,440 >> [Miauen] 455 01:05:59,440 --> 01:06:00,699 >> OK. 456 01:06:00,699 --> 01:06:03,880 So ist dies ein Beispiel für eine if-else. 457 01:06:03,880 --> 01:06:06,482 Es ist ein Entscheidungspunkt und weil es in der Schleife sitzt, 458 01:06:06,482 --> 01:06:07,690 sie sind beide überprüft zu werden. 459 01:06:07,690 --> 01:06:08,280 Ist das wahr? 460 01:06:08,280 --> 01:06:08,760 Ist das wahr? 461 01:06:08,760 --> 01:06:09,250 Ist das wahr? 462 01:06:09,250 --> 01:06:09,791 Ist das wahr? 463 01:06:09,791 --> 01:06:11,880 Und schließlich, einer der diejenigen geht anwenden 464 01:06:11,880 --> 01:06:16,480 und so hören Sie entweder die miauen oder das Gebrüll des Löwen in diesem Fall. 465 01:06:16,480 --> 01:06:21,400 >> Nun, lassen Sie uns tun, um eine etwas mehr Phantasie ein dass ich im Voraus too-- Themen erstellt. 466 01:06:21,400 --> 01:06:25,210 So ein Thread ist nur ein was ein Computer tun kann. 467 01:06:25,210 --> 01:06:29,349 So ein Multi-Threaded-Programm ist ein Programm, dass können mehrere Dinge zu tun. 468 01:06:29,349 --> 01:06:31,140 Und all diese Beispiele bisher hatten 469 01:06:31,140 --> 01:06:35,980 nur ein Skript, so zu speak-- ein Programm wie dieses hier oben. 470 01:06:35,980 --> 01:06:38,810 Beachten Sie aber, hat dieses Programm zwei Sprites, zwei Zeichen. 471 01:06:38,810 --> 01:06:40,020 Eines ist ein Vogel. 472 01:06:40,020 --> 01:06:40,870 Eine davon ist eine Katze. 473 01:06:40,870 --> 01:06:45,080 >> Und bemerken, wenn ich auf diese nach unten klicken links, sie haben jeweils ihre eigenen Skripts 474 01:06:45,080 --> 01:06:47,120 oder Programme, die mit ihnen verbunden. 475 01:06:47,120 --> 01:06:49,420 Und diese beiden Programme, bemerken, Start 476 01:06:49,420 --> 01:06:52,600 mit, wenn grüne Flagge clicked-- schauen wir uns die cat-- aussehen 477 01:06:52,600 --> 01:06:54,030 wenn grüne Fahne geklickt. 478 01:06:54,030 --> 01:06:58,220 Und so in der Tat, wenn ich traf jetzt spielen, zwei Dinge sind auf einmal geschehen. 479 01:06:58,220 --> 01:07:01,750 Die Katze und der Vogel sind beide gehen gleichzeitig in Betrieb genommen 480 01:07:01,750 --> 01:07:03,815 diesen Effekt zu erzeugen. 481 01:07:03,815 --> 01:07:05,440 Und Sie könnten sich vorstellen, was passiert. 482 01:07:05,440 --> 01:07:08,340 Es gibt eine Schleife und der Vogel und die Katze sind in einer Schleife. 483 01:07:08,340 --> 01:07:11,270 Der Vogel hüpft wie Ich war vorher, als ich sagte, autsch. 484 01:07:11,270 --> 01:07:13,040 Aber die Katze hat eindeutig einen Vorteil. 485 01:07:13,040 --> 01:07:16,040 Es gibt einen weiteren Erfassungsblock dass die Punkte, die Katze absichtlich 486 01:07:16,040 --> 01:07:19,836 Hier in diesem Fall auf den Vogel. 487 01:07:19,836 --> 01:07:22,960 So konnten wir necken auseinander, indem Sie diese Blöcke durch, was passiert. 488 01:07:22,960 --> 01:07:25,460 Aber die wichtigste Zutat ist hier ein. 489 01:07:25,460 --> 01:07:28,520 Der Vogel, so dass dieses Spiel ist nicht vollständig boring-- oder diese animation-- 490 01:07:28,520 --> 01:07:30,060 beginnt bei einer zufällige Richtung. 491 01:07:30,060 --> 01:07:32,890 Und der Computer Kommissionierung eine Zahl zwischen 90 und 180 492 01:07:32,890 --> 01:07:36,110 im Wesentlichen, so dass es eine leicht verschiedene Animations jedes Mal. 493 01:07:36,110 --> 01:07:39,480 >> Und dann hier bemerken, wenn die Katze berührt den Vogel, dann 494 01:07:39,480 --> 01:07:42,030 spielen den Löwen vier sound-- das Brüllen. 495 01:07:42,030 --> 01:07:46,330 Aber in der Zwischenzeit in der Vogel Palette, haben wir diese. 496 01:07:46,330 --> 01:07:49,229 Immer, wenn die Katze nicht zu berühren, halten nur drei Schritten zu bewegen. 497 01:07:49,229 --> 01:07:50,770 Und dann ist hier ein weiteres Puzzleteil. 498 01:07:50,770 --> 01:07:52,030 Wenn Sie am Rand sind, prallen. 499 01:07:52,030 --> 01:07:54,840 So ist der Vogel nur irgendwie seine eigenen Gedanken versunken, 500 01:07:54,840 --> 01:07:57,330 nur herumfliegen und Prellen, und es ist wirklich 501 01:07:57,330 --> 01:08:01,780 die Katze, die die bedingte Logik hatte zu bestimmen, ob er den Vogel gefangen hatte. 502 01:08:01,780 --> 01:08:02,280 Gut. 503 01:08:02,280 --> 01:08:08,800 So ist eine andere lassen hier tun, dieses wird Hallo Hallo Hallo genannt. 504 01:08:08,800 --> 01:08:15,100 Und dieser hier gerade tut dies in einer Endlosschleife. 505 01:08:15,100 --> 01:08:18,925 Aber notice-- wie wir stoppen dies sehr ärgerlich Programm? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Hit der Leertaste. 508 01:08:22,640 --> 01:08:27,990 Denn wenn ich das tue, die linke Hand program-- 509 01:08:27,990 --> 01:08:31,550 bemerken, es ist ständig listening-- ist der Schlüsselraum drücken. 510 01:08:31,550 --> 01:08:34,090 Wenn die Leertaste gedrückt, und wenn ja, was tut sie? 511 01:08:34,090 --> 01:08:35,980 Es hat eine sehr verbreitete Technik. 512 01:08:35,980 --> 01:08:38,590 Es setzt eine Variable gleich auf einen bestimmten Wert. 513 01:08:38,590 --> 01:08:39,741 Aber es schaltet diesen Wert. 514 01:08:39,741 --> 01:08:41,490 [? So Aussehen?] basierend auf der shape-- I 515 01:08:41,490 --> 01:08:43,160 haben eine Variable, die ich im Voraus geschrieben genannt 516 01:08:43,160 --> 01:08:44,770 Gedämpfte, das sagt nur ja oder nein. 517 01:08:44,770 --> 01:08:45,880 Ist der Ton stumm geschaltet oder nicht? 518 01:08:45,880 --> 01:08:46,990 Richtig oder falsch? 519 01:08:46,990 --> 01:08:51,580 Und beachten Sie, ich sage this-- wenn stumm geschaltet ist Null, dann zu einem ändern, 520 01:08:51,580 --> 01:08:53,840 sonst stumm es auf Null gesetzt. 521 01:08:53,840 --> 01:08:55,540 So spiegeln nur den Wert von Null auf Eins. 522 01:08:55,540 --> 01:08:58,320 Ich hätte done-- es ändern von zwei auf drei und drei vor zwei 523 01:08:58,320 --> 01:09:00,162 oder vier fünf bzw. vier auf sechs. 524 01:09:00,162 --> 01:09:01,870 Aber es spielt keine Rolle, welche Zahlen ich benutze, 525 01:09:01,870 --> 01:09:04,090 so lange, wie ich halten Ändern sie das Gegenteil. 526 01:09:04,090 --> 01:09:07,290 >> Und die meisten jeder Programmierer würde nur wählen Null und one-- wahr und falsch, 527 01:09:07,290 --> 01:09:09,510 ab und on-- dies darzustellen. 528 01:09:09,510 --> 01:09:10,930 Und das läuft noch. 529 01:09:10,930 --> 01:09:12,190 Wenn ich wieder traf die Leertaste 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> Das Programm läuft noch. 532 01:09:15,440 --> 01:09:18,400 Weil es das andere Skript das sagt, für immer die folgende tun. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Wenn die gedämpfte Variable gleich zero-- also, wenn Sie nicht stumm geschaltet 535 01:09:24,770 --> 01:09:29,609 es ist die logic-- wenn falsch oder nein, spielen dann den Ton, 536 01:09:29,609 --> 01:09:30,650 weil Sie nicht stumm geschaltet sind. 537 01:09:30,650 --> 01:09:33,358 Sie sollten den Ton spielen und dann denken hallo hallo hallo zwei Sekunden 538 01:09:33,358 --> 01:09:35,790 und dann warten, und tun es wieder und wieder und wieder. 539 01:09:35,790 --> 01:09:40,760 >> Und so auf diese Weise haben wir einen Weg für Menschen zu-- für Programme zu interagieren. 540 01:09:40,760 --> 01:09:43,120 Und sie haben nicht zu werden wie andere datiert. 541 01:09:43,120 --> 01:09:46,280 In der Tat, Stossen herum-- kein Wortspiel beabsichtigt-- 542 01:09:46,280 --> 01:09:49,250 jemand verbrachte eine riesige Menge an Zeit im Internet Umsetzung 543 01:09:49,250 --> 01:09:51,580 PokemonGo in Scratch. 544 01:09:51,580 --> 01:09:55,440 Es geolocates Sie auch in Cambridge oder hier Allston. 545 01:09:55,440 --> 01:10:03,120 Also, wenn Sie wollen, auch was die Leute sehen tun können, ist this-- sehr extravagant Menü. 546 01:10:03,120 --> 01:10:04,780 Klicken Sie hier auf. 547 01:10:04,780 --> 01:10:07,430 >> Das bin ich mit meiner Pfeiltasten jetzt. 548 01:10:07,430 --> 01:10:09,446 Ich werde danach zu gehen. 549 01:10:09,446 --> 01:10:09,946 Klicken. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Und jetzt klicken Sie auf die pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Ich meine, ich glaube, du bist soll die pokeball klicken. 554 01:10:20,260 --> 01:10:20,760 Gut. 555 01:10:20,760 --> 01:10:22,680 Also tat ich das. 556 01:10:22,680 --> 01:10:23,950 Ich kann hier gehen. 557 01:10:23,950 --> 01:10:27,790 Und diese Person implementiert etwas mehr Pokeballs über hier-- drei Pokeballs. 558 01:10:27,790 --> 01:10:29,950 >> Wir werden einen Link zu diesem Beitrag online, so dass Sie spielen können. 559 01:10:29,950 --> 01:10:32,364 Beachten Sie aber es gibt einfach einige grundlegende Bausteine. 560 01:10:32,364 --> 01:10:33,780 Es sieht viel schicker, und es ist. 561 01:10:33,780 --> 01:10:35,905 Das ist beeindruckend und mehr als würden wir normalerweise 562 01:10:35,905 --> 01:10:37,740 erwarten, natürlich für Problem auf Null gesetzt. 563 01:10:37,740 --> 01:10:40,809 Ich habe keine Ahnung, wie lange diese Person Online verbracht. 564 01:10:40,809 --> 01:10:41,850 Aber es ist alles nur eine Schleife. 565 01:10:41,850 --> 01:10:43,180 Es gibt einen Ton zu spielen. 566 01:10:43,180 --> 01:10:44,850 Es gibt eine Art Schleife Hören dafür, ob ich bin 567 01:10:44,850 --> 01:10:47,558 Drücken der Pfeil nach oben oder den nach unten Pfeil oder die linke und die rechte, 568 01:10:47,558 --> 01:10:49,834 und dann, wenn dem so ist, es bewegt sich es irgendeine Anzahl von Pixeln. 569 01:10:49,834 --> 01:10:51,750 Und dann, wenn ich auf ein anderes Sprite, gibt es 570 01:10:51,750 --> 01:10:53,390 eine Art von dort, wenn die Bedingung. 571 01:10:53,390 --> 01:10:54,806 Ja, das ist immer zu intensiv. 572 01:10:54,806 --> 01:10:56,100 Wir gehen zu stoppen. 573 01:10:56,100 --> 01:10:57,750 Es ist all die grundlegenden Bausteine. 574 01:10:57,750 --> 01:11:01,530 Es gibt keine anderen Bestandteile, als die, die wir haben auf bereits aussah. 575 01:11:01,530 --> 01:11:04,670 >> Und doch hier, lass mich tun einen letzten Satz von Beispielen 576 01:11:04,670 --> 01:11:06,960 dass malt ein Bild zu von dem, was Sie hier tun können. 577 01:11:06,960 --> 01:11:10,481 Hier ist ein sehr einfaches Programm, das gerade tut this-- Husten, Husten, Husten. 578 01:11:10,481 --> 01:11:12,480 Und auf der Grundlage nur auf das, was wir haben bei bisher sah, 579 01:11:12,480 --> 01:11:14,570 wo ist die offensichtliche Chance für Verbesserungen. 580 01:11:14,570 --> 01:11:15,570 Dieses Programm ist korrekt. 581 01:11:15,570 --> 01:11:17,980 Es husten dreimal was ist das, was ich wollte. 582 01:11:17,980 --> 01:11:19,650 Aber es ist schlecht umgesetzt. 583 01:11:19,650 --> 01:11:20,600 Es ist schlecht konzipiert. 584 01:11:20,600 --> 01:11:22,000 Warum? 585 01:11:22,000 --> 01:11:22,500 Ja. 586 01:11:22,500 --> 01:11:23,230 Es ist nicht eine Schleife. 587 01:11:23,230 --> 01:11:24,610 Und es ist nicht so viel dass es nicht eine Schleife ist, 588 01:11:24,610 --> 01:11:26,400 es ist, dass eine Menge Redundanz gibt. 589 01:11:26,400 --> 01:11:28,830 Es wird kopiert und klebte Code sozusagen. 590 01:11:28,830 --> 01:11:31,830 Und die Lösung wahrscheinlich ist in der Tat eine Schleife. 591 01:11:31,830 --> 01:11:34,350 Lassen Sie mich gehen Sie voran und verbessern auf, dass. 592 01:11:34,350 --> 01:11:36,250 Und ich werde diese hier zu ziehen. 593 01:11:36,250 --> 01:11:39,986 Lassen Sie mich gehen Sie vor und erhalten eine Wiederholung Block, ändern Sie dies auf drei. 594 01:11:39,986 --> 01:11:41,860 Ich gehe weg zu werfen einige dieser Blöcke. 595 01:11:41,860 --> 01:11:43,150 >> Und Sie werden feststellen, es ist ziemlich intuitiv. 596 01:11:43,150 --> 01:11:45,691 Sie per Drag & Drop und Dinge erscheinen und verschwinden schließlich. 597 01:11:45,691 --> 01:11:49,170 Und ich kann diese einfach per Drag in hier und jetzt habe ich eine sauberere Version noch. 598 01:11:49,170 --> 01:11:50,730 Aber weißt du was? 599 01:11:50,730 --> 01:11:52,940 Es gibt diese Möglichkeit jetzt abstraction-- 600 01:11:52,940 --> 01:11:56,350 zu starten neues Vokabular zu definieren dass MIT nicht gerechnet hatten. 601 01:11:56,350 --> 01:11:59,110 Es gibt warten und wiederholen und für immer und wenn, 602 01:11:59,110 --> 01:12:02,590 aber was ist, wenn ich will einführen das Wort Husten als Block? 603 01:12:02,590 --> 01:12:06,230 Was, wenn ich ein Puzzleteil deren Zweck im Leben ist, zu husten? 604 01:12:06,230 --> 01:12:10,720 >> Nun, lassen Sie uns bei dieser Version aussehen hier, die ich wie folgt hergestellt. 605 01:12:10,720 --> 01:12:13,579 Magisch, ich habe erstellt Dieses Puzzle-Stück hier, 606 01:12:13,579 --> 01:12:14,870 die Scratch ermöglicht es Ihnen, zu tun. 607 01:12:14,870 --> 01:12:16,787 Und in der Tat C und Python und JavaScript sind 608 01:12:16,787 --> 01:12:18,370 gehen, damit Sie dies auch zu tun. 609 01:12:18,370 --> 01:12:21,830 Sie können Ihre eigenen erstellen Stücke, die Sie nennen, was Sie wollen. 610 01:12:21,830 --> 01:12:24,890 In diesem Fall fühlt sich Husten wie eine vernünftige Definition. 611 01:12:24,890 --> 01:12:27,880 Und dann mit diesen Stücken nach unten Hier können Sie definieren, was es bedeutet. 612 01:12:27,880 --> 01:12:30,290 >> Ich per Drag & Drop aus diese Palette hier-- mehr 613 01:12:30,290 --> 01:12:33,500 blocks-- dieses große lila Block, wo ich in Husten getippt 614 01:12:33,500 --> 01:12:35,290 wie der Name meines neuen Puzzle-Stück. 615 01:12:35,290 --> 01:12:39,920 Und dann sagen, ich bin jedes Mal, wenn ein Benutzer nennt diese neue Husten Puzzleteil, 616 01:12:39,920 --> 01:12:41,770 tun ein Mitspracherecht und eine Wartezeit. 617 01:12:41,770 --> 01:12:46,160 Und so hier oben in meinem Wiederholungsblock, Ich kann nur dreimal husten. 618 01:12:46,160 --> 01:12:49,972 >> Und ich würde behaupten, vor allem wenn jetzt verstecken Sie dieses Detail. 619 01:12:49,972 --> 01:12:51,430 Wer kümmert sich, wie Husten umgesetzt wird? 620 01:12:51,430 --> 01:12:54,390 Alles, was ich über als Pflege Programmierer, die ich husten kann. 621 01:12:54,390 --> 01:12:56,280 Ich interessiere mich nicht, wie sagen, umgesetzt wird. 622 01:12:56,280 --> 01:12:58,620 Ich kümmere nur, dass die Katze kann etwas sagen. 623 01:12:58,620 --> 01:13:02,720 Ich kann abstrahieren, die detailliert und nur auf das konzentrieren, was hier auf dem Bildschirm ist. 624 01:13:02,720 --> 01:13:04,400 Aber ich kann weiter noch einen Schritt nehmen. 625 01:13:04,400 --> 01:13:08,070 >> Beachten Sie, dass hier, ich habe die Schleife dreimal umgesetzt. 626 01:13:08,070 --> 01:13:11,560 Aber was, wenn ich stattdessen diese Version greifen? 627 01:13:11,560 --> 01:13:14,640 Und was, wenn statt in dieser Version hier, 628 01:13:14,640 --> 01:13:18,730 Ich ändere nur mein Puzzle-Stück zu nehmen ein Argument, und Input zu sich selbst? 629 01:13:18,730 --> 01:13:21,100 Und das Eingang kann sein eine Zahl wie drei. 630 01:13:21,100 --> 01:13:24,580 So, jetzt, wenn ich ein Programm schreibe und ich möchte, dass die Katze zu husten, 631 01:13:24,580 --> 01:13:28,270 Ich kann das Rätsel eigentlich sagen piece wie oft husten, 632 01:13:28,270 --> 01:13:31,990 denn am Ende hier ein schicker Version dieser benutzerdefinierten Puzzleteile 633 01:13:31,990 --> 01:13:34,500 mich festlegen können, dass Husten tatsächlich nimmt 634 01:13:34,500 --> 01:13:36,951 ein input-- ein Argument wie dieses. 635 01:13:36,951 --> 01:13:37,700 Und weisst du was? 636 01:13:37,700 --> 01:13:38,890 Vielleicht merke ich, eine Minute warten. 637 01:13:38,890 --> 01:13:40,680 Husten ist die same-- es ist im Grunde 638 01:13:40,680 --> 01:13:42,120 die gleiche Idee wie Niesen. 639 01:13:42,120 --> 01:13:44,040 Es ist nur eine andere Wort auf dem Bildschirm. 640 01:13:44,040 --> 01:13:46,550 Ich kann abstrahieren weiter und implementieren 641 01:13:46,550 --> 01:13:48,750 Diese endgültige Version ein Husten, der auf den ersten Blick 642 01:13:48,750 --> 01:13:50,660 ist viel komplexer suchen. 643 01:13:50,660 --> 01:13:52,140 Beachten Sie aber, was ich getan habe. 644 01:13:52,140 --> 01:13:55,930 Ich habe jetzt generalized-- genericized really-- dieses Puzzleteil 645 01:13:55,930 --> 01:13:59,900 genannt sagen Wort n-mal werden. 646 01:13:59,900 --> 01:14:04,410 >> Und jetzt habe ich zwei neue Puzzleteile definieren hier unten Husten n-mal. 647 01:14:04,410 --> 01:14:06,790 Und was macht die Husten-Funktion? 648 01:14:06,790 --> 01:14:08,420 Was ist meine Art Puzzle-Stück tun? 649 01:14:08,420 --> 01:14:11,996 Er fordert nur das Sagen Block, in dem Wort vorbei, ich möchte sagen, 650 01:14:11,996 --> 01:14:13,870 in der Anzahl vorbei Mal möchte ich sagen. 651 01:14:13,870 --> 01:14:18,210 Denn jetzt kann ich implementieren niesen indem Sie einfach sagen achoo, 652 01:14:18,210 --> 01:14:20,320 in diesem Fall eine gewisse Anzahl von Malen. 653 01:14:20,320 --> 01:14:22,360 >> Und so bin ich Schichtung und Überlagerung. 654 01:14:22,360 --> 01:14:25,690 Und wieder, hier ist der Schlüssel nicht wie ich umgesetzt, aber die Tatsache, 655 01:14:25,690 --> 01:14:28,070 dass, wenn ich buchstäblich nur bewegen diese aus dem Bildschirm, 656 01:14:28,070 --> 01:14:31,280 schauen Sie, wie einfach, wenn nicht ziemlich mein Programm sieht jetzt. 657 01:14:31,280 --> 01:14:33,930 Da tut es, was es sagt, ich habe abstrahiert 658 01:14:33,930 --> 01:14:37,640 weg, was in dieser Black-Box ist. es geschieht hier ein lila Box zu sein, 659 01:14:37,640 --> 01:14:41,430 aber ich habe behindert weg, was drin ist da ist mir egal, wie es funktioniert. 660 01:14:41,430 --> 01:14:43,650 Ich kümmere mich gerade jetzt, dass es funktioniert. 661 01:14:43,650 --> 01:14:46,375 >> Und in der Tat, in Problem auf Null gesetzt, das ist genau das 662 01:14:46,375 --> 01:14:49,250 die Art der Schichtung von Ideen, die Sie werde haben die Möglichkeit, zu erkunden. 663 01:14:49,250 --> 01:14:53,510 Es ist genau die Möglichkeit, Problemlösungstechniken anzuwenden, 664 01:14:53,510 --> 01:14:55,550 zu dem, was wahrscheinlich ein ungewohnten Umgebung. 665 01:14:55,550 --> 01:14:57,890 Und ob Sie haben nicht programmiert vor oder vor programmiert, 666 01:14:57,890 --> 01:14:59,500 Sie werden feststellen, dass es ein kleines Etwas 667 01:14:59,500 --> 01:15:00,874 in dieser Umgebung für jedermann. 668 01:15:00,874 --> 01:15:02,770 Und mit Problem eingestellt ein in einer Woche, 669 01:15:02,770 --> 01:15:06,630 wir werden zu konzentrieren überführt werden auf einer höheren Ebene Sprache genannt 670 01:15:06,630 --> 01:15:09,290 C-- oder eher eine niedrigere Sprache genannt 671 01:15:09,290 --> 01:15:11,347 C-- das ist noch mehr kraftvoll, auch wenn es 672 01:15:11,347 --> 01:15:12,930 ein wenig mehr kryptisch auf den ersten Blick. 673 01:15:12,930 --> 01:15:16,740 >> Und Sie werden pro heutigen TL realisieren: DR, dass dieses Problem festgelegt hat eine kürzere 674 01:15:16,740 --> 01:15:19,880 Fenster der Zeit als Zukunft diejenigen, einfach da sollten Sie es finden, ziemlich 675 01:15:19,880 --> 01:15:20,420 zugänglich. 676 01:15:20,420 --> 01:15:22,211 Und keine Sorge, wenn Sie fügen die Klasse zu spät. 677 01:15:22,211 --> 01:15:23,920 Wir adressieren, dass es dauerte nicht lange. 678 01:15:23,920 --> 01:15:28,480 Und bevor wir für Kuchen vertagen, lassen Sie uns Abschluss mit nur zwei Minuten zu sehen 679 01:15:28,480 --> 01:15:30,500 auf das, was Sie hier in CS50 erwartet. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUSIK SPIELEN] 682 01:17:20,803 --> 01:17:21,302 Gut. 683 01:17:21,302 --> 01:17:22,690 Das war es für CS50. 684 01:17:22,690 --> 01:17:23,650 Wir werden dich bald sehen. 685 01:17:23,650 --> 01:17:25,526 Kuchen wird jetzt serviert. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUSIK SPIELEN] 688 01:18:14,267 --> 01:18:16,350 17 SPRECHER: Haben Sie gehört, eines Sabbaticals, Chef? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 18 SPRECHER: Vielleicht gibt es mehr unter der Haube. 691 01:18:31,920 --> 01:18:38,279