1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [ROCK MUSIC] 2 00:00:32,435 --> 00:00:35,429 [MUSIC - "HAPPY TOGETHER" Die Schildkröten] 3 00:01:27,330 --> 00:01:30,170 DAVID MALAN: Heute beginnen wir unsere Erkundung des 4 00:01:30,170 --> 00:01:32,710 Grundlagen der Informatik und unsere Einführung, 5 00:01:32,710 --> 00:01:35,070 Jetzt, zur Kunst des Programmierens, von denen das ist 6 00:01:35,070 --> 00:01:36,260 nur ein Beispiel. 7 00:01:36,260 --> 00:01:39,600 Aber in die gleiche Richtung der Problemlösung, wissen, dass 8 00:01:39,600 --> 00:01:42,080 CS50 traditionellen Puzzle Day ist morgen. 9 00:01:42,080 --> 00:01:45,190 Falls Sie noch nicht für diese Veranstaltung RSVP haben, können Sie zu gehen 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Sie bringen können Teams von zwei oder drei oder vier. 12 00:01:50,940 --> 00:01:53,080 Sie werden mit Problemen wie die, die Sie sahen angefochten werden 13 00:01:53,080 --> 00:01:54,190 dort oben in der Anfang. 14 00:01:54,190 --> 00:01:57,000 Alle neuen Problemen in diesem Jahr, wenn Sie im letzten Jahr nahmen, und Sie 15 00:01:57,000 --> 00:01:59,680 eine Chance dann einige tolle Preise zu gewinnen. 16 00:01:59,680 --> 00:02:02,750 Unter ihnen, eine Wii und einige Geschenkgutscheine und ähnliches, 17 00:02:02,750 --> 00:02:05,650 Alle während hanging out mit CS50 Studenten und Klassenkameraden 18 00:02:05,650 --> 00:02:07,720 Pizza und Facebook. 19 00:02:07,720 --> 00:02:10,430 Also mehr dazu morgen, wenn Sie möchten. 20 00:02:10,430 --> 00:02:13,330 >> Dies ist dann CS50, für diejenigen von euch zu uns für die 21 00:02:13,330 --> 00:02:14,510 erste Zeit. 22 00:02:14,510 --> 00:02:18,030 Und wissen, dass dies natürlich besonders bestimmt, um 23 00:02:18,030 --> 00:02:22,605 Sie durch diesen Kurs zu ihrem endgültigen Ende, an welcher Stelle Sie 24 00:02:22,605 --> 00:02:24,270 wird nicht nur ein Verständnis von diesen haben 25 00:02:24,270 --> 00:02:26,450 Grundlagen der Informatik, aber Sie müssen 26 00:02:26,450 --> 00:02:29,120 Diese sehr praktische Fähigkeiten, die Sie dann zurück zum 27 00:02:29,120 --> 00:02:31,370 Ihre eigene Abteilung, ob es sich um Ingenieurwissenschaften, 28 00:02:31,370 --> 00:02:33,570 Angewandte Mathematik, die Naturwissenschaften, natürliche 29 00:02:33,570 --> 00:02:34,780 Wissenschaft oder dergleichen. 30 00:02:34,780 --> 00:02:37,030 In der Tat, was ist so spannend Informatik dieser 31 00:02:37,030 --> 00:02:39,900 Tag ist, dass es nur so für ist 32 00:02:39,900 --> 00:02:40,990 alle Arten von Feldern. 33 00:02:40,990 --> 00:02:46,210 Und auch wenn heute, werden wir nur an der Oberfläche kratzen a 34 00:02:46,210 --> 00:02:49,020 sehr traditionellen Programmiersprache wie C bekannt, schreiben wir 35 00:02:49,020 --> 00:02:51,040 stattdessen an etwas namens Scratch suchen, etwas mit 36 00:02:51,040 --> 00:02:53,420 welche das Cookie Liebesgeschichte wurde von einem Ihrer umgesetzt 37 00:02:53,420 --> 00:02:57,020 Vorgänger in den vergangenen Jahren, Geschichten zu erzählen, um Spiele zu erstellen, 38 00:02:57,020 --> 00:03:00,060 um interaktive Kunst zu schaffen, und tatsächlich beginnen, unsere wickeln 39 00:03:00,060 --> 00:03:02,240 Köpfe um einige der grundlegenden Konstrukte, 40 00:03:02,240 --> 00:03:05,390 zugrunde liegen, Programmierung, sondern in einem Kontext, wie Sie sehen werden, ist das 41 00:03:05,390 --> 00:03:09,140 viel weniger beängstigend, das ist viel weniger geheimnisvoll, als Sie werden sehen, 42 00:03:09,140 --> 00:03:10,140 es dauerte nicht lange. 43 00:03:10,140 --> 00:03:12,410 Und klar, auch für diejenigen von euch nur zu uns dies 44 00:03:12,410 --> 00:03:16,170 Semester, die Phrasen, auf dem wir am Ende Mittwoch Vortrag, 45 00:03:16,170 --> 00:03:20,260 ist es nicht so wichtig, wenn Sie in Bezug auf Ihre enden 46 00:03:20,260 --> 00:03:22,950 Klassenkameraden in dieser Klasse, aber wo man von Semester Ende 47 00:03:22,950 --> 00:03:27,190 in Woche 11, am Ende relativ gleich selbst noch heute. 48 00:03:27,190 --> 00:03:32,000 >> So ohne weiteres ist dies auch erwähnenswert, dass 49 00:03:32,000 --> 00:03:34,450 die weniger komfortabel, die irgendwo dazwischen, 50 00:03:34,450 --> 00:03:36,825 auch durch die Gestaltung von diesem Kurs keine Nachteile 51 00:03:36,825 --> 00:03:38,760 vis-a-vis die mehr Komfort 52 00:03:38,760 --> 00:03:39,920 Kommen in diese Klasse. 53 00:03:39,920 --> 00:03:41,810 Wie Sie in den nächsten Wochen sehen zu kommen, haben wir verschiedene 54 00:03:41,810 --> 00:03:44,600 Tracks für unterschiedliche hintergrund, Abschnitte für diejenigen, 55 00:03:44,600 --> 00:03:46,500 weniger komfortabel, komfortabler, die irgendwo 56 00:03:46,500 --> 00:03:47,250 dazwischen. 57 00:03:47,250 --> 00:03:49,520 Wie Sie sehen an diesem Wochenende und nächste Woche, zwei Versionen 58 00:03:49,520 --> 00:03:52,410 die meisten Problemstellungen sowohl in Standard-und Hacker-Ausgabe so 59 00:03:52,410 --> 00:03:55,390 dass Sie alle können selbst wählen den Pfad hinunter, mit dem Sie 60 00:03:55,390 --> 00:03:56,615 sich am wohlsten fühlen. 61 00:03:56,615 --> 00:03:58,770 >> So wir heute in diese Programmierung tauchen 62 00:03:58,770 --> 00:04:00,060 Sprache namens Scratch. 63 00:04:00,060 --> 00:04:02,250 Es ist eine grafische Programmiersprache, und doch hat es die 64 00:04:02,250 --> 00:04:04,500 gleichen Funktionen einiger der höheren Programmiersprachen wir 65 00:04:04,500 --> 00:04:07,050 entdecken später im Semester, darunter C und 66 00:04:07,050 --> 00:04:08,670 JavaScript und PHP. 67 00:04:08,670 --> 00:04:11,890 Aber es wird uns erlauben, einige der Ablenkungen zu vermeiden 68 00:04:11,890 --> 00:04:14,890 früh auf der Syntax, Dinge wie Semikolons, Klammern, 69 00:04:14,890 --> 00:04:17,720 und andere obskure Details, die auf den ersten Blick einfach nicht 70 00:04:17,720 --> 00:04:19,916 überhaupt intellektuell interessant und neigen dazu, in sich 71 00:04:19,916 --> 00:04:22,310 die Art und Weise von einem grundlegenden Verständnis. 72 00:04:22,310 --> 00:04:24,870 Im Hinblick auf die jetzt die Trägerstruktur voraus, erkannte dies 73 00:04:24,870 --> 00:04:27,570 Werkzeug, CS50 Diskutier, das auf den Verlauf des verknüpft wird 74 00:04:27,570 --> 00:04:30,320 Website im Laufe des Tages ist das Online-Diskussionsforum in 75 00:04:30,320 --> 00:04:32,480 die Sie in der Lage sein, Fragen von einander zu stellen und 76 00:04:32,480 --> 00:04:35,020 Mitarbeiter, und es ist auch ein Werkzeug, wie wir sehen werden nächste Woche, 77 00:04:35,020 --> 00:04:37,240 dass wir sehr integrativ nutzen, 78 00:04:37,240 --> 00:04:38,780 Bürozeiten als gut. 79 00:04:38,780 --> 00:04:41,670 Tatsächlich beginnt der Bürozeiten am Montag, und ehrlich gesagt, die erste 80 00:04:41,670 --> 00:04:43,930 Woche der Bürozeiten ist ziemlich low key. 81 00:04:43,930 --> 00:04:46,820 >> Ich glaube nicht, dass Sie Scratch alles, was unzugänglich zu finden. 82 00:04:46,820 --> 00:04:48,930 Es ist ziemlich selbsterklärend, wie wir sehen werden, und so was 83 00:04:48,930 --> 00:04:51,380 wir werden es heute verwenden, ist für einige der zu extrahieren 84 00:04:51,380 --> 00:04:53,990 grundlegende Ideen, die dann in der gesamten anhalten wird 85 00:04:53,990 --> 00:04:54,900 Rest des Semesters. 86 00:04:54,900 --> 00:04:57,980 Aber ab Montag, um 08.00 Uhr über 23.00 Uhr werden 87 00:04:57,980 --> 00:05:01,530 Sprechstunden in Annenberg über Gehirn Pause. 88 00:05:01,530 --> 00:05:04,490 Schneiden zwei beginnt an diesem Abend, so irgendwann in diesem 89 00:05:04,490 --> 00:05:07,260 Wochenende, cs50.net/section gehen, und du wirst 90 00:05:07,260 --> 00:05:08,530 werden gebeten eine Reihe von Fragen. 91 00:05:08,530 --> 00:05:10,290 Unter ihnen, wie würden Sie beschreiben Ihre 92 00:05:10,290 --> 00:05:12,040 Komfort von heute? 93 00:05:12,040 --> 00:05:14,450 Es gibt keine harten, schnellen Regel, wer in dem Eimer. 94 00:05:14,450 --> 00:05:17,170 Es ist genau die Art von Sache, die Sie wahrscheinlich wissen, wenn Sie 95 00:05:17,170 --> 00:05:20,280 gehören zu denen, die weniger komfortabel oder anderweitig. 96 00:05:20,280 --> 00:05:21,350 >> Und nun Komplettlösungen. 97 00:05:21,350 --> 00:05:24,020 Das Problem Die Spezifikation für diese Woche, sowohl Standard- 98 00:05:24,020 --> 00:05:28,560 und Hacker-Ausgabe gleichermaßen, ist cs50.net Online ab sofort. 99 00:05:28,560 --> 00:05:31,500 Und du wirst sehen, dass die erste dieser Ausgaben, die 100 00:05:31,500 --> 00:05:33,940 Standard Edition jede Woche, wird durch etwas begleiteten wir 101 00:05:33,940 --> 00:05:36,550 rufen Sie einen Code Komplettlösung, führte eine Sitzung von einem der 102 00:05:36,550 --> 00:05:39,100 Natürlich Lehre Stipendiaten führen Sie durch, bieten 103 00:05:39,100 --> 00:05:42,290 Tipps und erhalten Sie unten einen bestimmten Weg, wenn es darum geht, 104 00:05:42,290 --> 00:05:44,150 Beginn dieser Problem-Sets. 105 00:05:44,150 --> 00:05:46,790 Also mit jedem dieser Probleme stellt, wenn Sie jemals wollen sind 106 00:05:46,790 --> 00:05:50,250 Sie selbst, wo soll ich anfangen, beginnen Sie mit diesen 107 00:05:50,250 --> 00:05:50,890 Komplettlösungen. 108 00:05:50,890 --> 00:05:53,450 Und in der Tat, lassen Sie mich Zamyla Chan, diese einzuführen 109 00:05:53,450 --> 00:05:55,870 Jahr der Lehre Kerl, leiten wird jeder und jede 110 00:05:55,870 --> 00:05:56,910 eine dieser Lösungen. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Applaus] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHAN: Oh, hallo, everyone. 114 00:06:03,975 --> 00:06:05,130 Mein Name ist Zamyla. 115 00:06:05,130 --> 00:06:08,250 Ich bin ein Junior Ingenieurstudium in Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Aber ich versuche, und passen in viele Informatik Kurse wie ich 117 00:06:10,890 --> 00:06:13,350 kann, ist die, warum ich bin wirklich gespannt darauf, was diese 118 00:06:13,350 --> 00:06:14,590 Jahr Komplettlösungen. 119 00:06:14,590 --> 00:06:16,950 Komplettlösungen für mich, waren ein wesentlicher Teil meiner CS50 120 00:06:16,950 --> 00:06:17,910 Erfahrung. 121 00:06:17,910 --> 00:06:22,710 Während der Komplettlösung für jeden p-Reihe, wir durchlaufen 122 00:06:22,710 --> 00:06:25,580 das Problem gesetzt zusammen, schauen über die Probleme, Art der 123 00:06:25,580 --> 00:06:27,360 unterteilen Sie diese in überschaubare Häppchen. 124 00:06:27,360 --> 00:06:28,990 Ich gebe Ihnen Tipps, Techniken für immer 125 00:06:28,990 --> 00:06:30,820 durch und Einstieg. 126 00:06:30,820 --> 00:06:33,510 Ich hoffe, Sie alle bei den Komplettlösungen zu sehen. 127 00:06:33,510 --> 00:06:34,720 Wenn Sie es nicht persönlich, dann 128 00:06:34,720 --> 00:06:36,580 bitte tune in online. 129 00:06:36,580 --> 00:06:36,840 >> DAVID MALAN: Excellent. 130 00:06:36,840 --> 00:06:37,950 Danke, Zamyla. 131 00:06:37,950 --> 00:06:40,870 So erkennen, dass Komplettlösungen sind in der Tat an einem Freitag 132 00:06:40,870 --> 00:06:43,110 Nachmittag, aber dies ist absichtlich mit Designs, so dass 133 00:06:43,110 --> 00:06:45,750 auch wenn Sie lieber nicht an Klasse an einem Freitag 134 00:06:45,750 --> 00:06:48,490 Am Nachmittag werden die Videos werden bis umso schnell über 135 00:06:48,490 --> 00:06:48,990 das Wochenende. 136 00:06:48,990 --> 00:06:51,880 So klar, dass cs50.net werden alle Zamyla der sein 137 00:06:51,880 --> 00:06:53,130 Komplettlösungen. 138 00:06:54,800 --> 00:06:56,890 Und dass es das heutige Datum und Uhrzeit, 03.00 Uhr, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Und einige der Lehre Stipendiaten haben auch bereit 141 00:07:00,080 --> 00:07:03,250 einige Anmerkungen für Sie in absentia, um Ihnen ein bisschen 142 00:07:03,250 --> 00:07:06,760 Perspektive, was ihre Erfahrung kommen in und 143 00:07:06,760 --> 00:07:08,990 Ausgehen des CS50 war wie. 144 00:07:08,990 --> 00:07:11,250 Also, wenn wir schalten Sie das Licht nur für einen Augenblick, ich gebe Ihnen 145 00:07:11,250 --> 00:07:18,100 einige der CS50-Mitarbeiter. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON STEINKAMP: Ich habe CS50 im vergangenen Jahr als Freshman in der 147 00:07:20,440 --> 00:07:22,880 fallen, und es absolut blies meinen Verstand. 148 00:07:22,880 --> 00:07:25,090 Ich hatte nie irgendwelche Programmierung Klassen genommen vor, 149 00:07:25,090 --> 00:07:26,380 und kam nie mit einem Computer Science 150 00:07:26,380 --> 00:07:27,320 Erfahrung überhaupt. 151 00:07:27,320 --> 00:07:29,240 Und nur, ich hörte das Summen über die Klasse und 152 00:07:29,240 --> 00:07:30,050 beschlossen, es zu nehmen. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Mitelman: Es war wirklich lustig, wirklich einnehmend. 154 00:07:31,780 --> 00:07:33,480 Ich immer noch bis zum heutigen Tag - 155 00:07:33,480 --> 00:07:36,560 Ich habe vor kurzem sah ich die Diskette, die David gab uns 156 00:07:36,560 --> 00:07:38,140 am ersten Tag der Vorlesung. 157 00:07:38,140 --> 00:07:40,020 Ich hatte es an meiner Wand hing. 158 00:07:40,020 --> 00:07:42,410 Dies ist wahrscheinlich ein wenig nerdy, aber ich hing in meiner 159 00:07:42,410 --> 00:07:46,930 Wand während die Klasse als Erinnerung daran, wie cool es war. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Es ist so peinlich. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON STEINKAMP: Informatik ist etwas, das Sie 162 00:07:50,770 --> 00:07:52,370 sollten versuchen, auch wenn Sie nicht ein für sind 163 00:07:52,370 --> 00:07:54,980 die traditionellen Wissenschaften. 164 00:07:54,980 --> 00:07:58,510 Es ist seine eigene Erfahrung und CS50 wird sicherstellen, dass Sie 165 00:07:58,510 --> 00:08:01,520 auch durch ihn mit seinem Heer von TFs unterstützt. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: Ich nahm es als ein Neuling, und so machte ich eine Menge 167 00:08:03,700 --> 00:08:04,215 neue Freunde. 168 00:08:04,215 --> 00:08:07,170 Ich habe auch dieses ganze Konzentration und eingeführt 169 00:08:07,170 --> 00:08:10,770 gesamte Schule der Technik, und so empfehle ich es 170 00:08:10,770 --> 00:08:14,360 und begrüßen Sie zu unserem CS50 Familie. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 nur lehrt, wie man Werkzeuge verwenden 172 00:08:17,510 --> 00:08:19,210 das sind allgemein zugänglich. 173 00:08:19,210 --> 00:08:21,840 Sie brauchen nur einen Laptop, benötigen Sie einen Web-Browser, und Sie 174 00:08:21,840 --> 00:08:26,030 müssen lernen, einige Code schreiben, und man kann wirklich bauen 175 00:08:26,030 --> 00:08:27,400 nette Dinge. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Es ist nur so cool in der Lage sein, etwas zu machen 177 00:08:31,660 --> 00:08:34,580 und haben Leute benutzen es und haben die Menschen sehen es, und das ist 178 00:08:34,580 --> 00:08:35,900 was ich wirklich liebe darüber. 179 00:08:35,900 --> 00:08:37,429 >> TIM MCLAUGHLIN: - ein Gefühl von Gemeinschaft, glaube ich, in diesem 180 00:08:37,429 --> 00:08:39,470 natürlich mehr als jedem anderen Kurs, die ich bisher getroffen habe. 181 00:08:39,470 --> 00:08:41,350 Sie sind nicht nur unter anderen - 182 00:08:41,350 --> 00:08:42,740 Sie füllt nicht eine weitere Forderung. 183 00:08:42,740 --> 00:08:45,310 Sie sind nicht einfach so zu Vorträgen und gehen Sie im Abschnitt. 184 00:08:45,310 --> 00:08:49,630 Aber du tust Tonnen von Dingen, die sind alle über 185 00:08:49,630 --> 00:08:51,560 Programmierung und alles über Technik, aber es funktioniert nicht 186 00:08:51,560 --> 00:08:53,090 wirklich wie eine Klasse fühlen sich die meisten der Zeit. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: Und am ersten Tag, übergab sie Kuchen und 188 00:08:55,012 --> 00:08:56,215 Ich war sofort verkauft. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: Free Süßigkeiten und Pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - unabhängig von Ihrer Zinsniveau, ich glaube, 191 00:08:59,820 --> 00:09:05,170 dass CS50, haben Sie Spaß, und du wirst intellektuell 192 00:09:05,170 --> 00:09:06,070 stimuliert. 193 00:09:06,070 --> 00:09:07,926 >> MARK Grozen-SMITH: Es ist immer eine Partei in der Klasse, und es ist ein 194 00:09:07,926 --> 00:09:09,990 Partei jede Nacht die Arbeit an Ihrem p-Set. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON STEINKAMP: Jedes Mal, wenn Sie fertig sind ein Problem Set, Sie 196 00:09:11,880 --> 00:09:13,710 fühlen sich wie Sie ein Projekt abgeschlossen haben. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Es war Freshman Jahr, und ich wurde Einkäufe erledigt. 198 00:09:16,580 --> 00:09:19,030 Ich hatte meine vier Klassen bereit, und ich war in Annenberg. 199 00:09:19,030 --> 00:09:21,670 Und ich stoße einen Freund, und er sagt, hey, ich bin einkaufen 200 00:09:21,670 --> 00:09:24,330 Diese Klasse namens CS50, und Sie sollten mit mir kommen. 201 00:09:24,330 --> 00:09:28,150 Endete Einnahme, die fallen, und nach dieser Klasse I 202 00:09:28,150 --> 00:09:30,510 dachte, vielleicht bin ich zu geringfügigen gehen in CS. 203 00:09:30,510 --> 00:09:33,760 Aber hier bin ich, drei Jahre später, immer noch studiert Computer 204 00:09:33,760 --> 00:09:36,680 Wissenschaft und tatsächlich tun es als eine große, und ich liebte jede 205 00:09:36,680 --> 00:09:37,780 Moment davon. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: Ich habe keine Ahnung. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Mal sehen. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: Craziness. 209 00:09:49,200 --> 00:09:50,610 >> Sprecher 1: Ich fühle mich wie sehr Klischee wäre. 210 00:09:50,610 --> 00:09:52,530 Ich möchte nur sagen, wie, awesome. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Barrierefreiheit. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: Free Süßigkeiten und Pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: Kann nicht ausschlagen eine Klasse, die Hände Kuchen. 214 00:09:57,310 --> 00:09:58,510 >> TIM MCLAUGHLIN: Energetic. 215 00:09:58,510 --> 00:10:00,040 >> Vipul Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Lassen Sie mich eine Antwort nachzudenken. 217 00:10:02,636 --> 00:10:04,480 Ich glaube, ich habe etwas. 218 00:10:04,480 --> 00:10:07,092 Oh, Gott. 219 00:10:07,092 --> 00:10:13,370 Ja, mein Name ist Rob Bowden, und dies CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Applaus] 221 00:10:20,810 --> 00:10:23,390 DAVID MALAN: All right, so beginnen wir ein Bild malen 222 00:10:23,390 --> 00:10:26,230 der Richtung, in die wir gehen können und wir stellen 223 00:10:26,230 --> 00:10:28,190 dieses Konzept hier als Pseudocode bekannt. 224 00:10:28,190 --> 00:10:29,560 So Pseudocode ist keine Programmiersprache 225 00:10:29,560 --> 00:10:30,810 Sprache für sich. 226 00:10:30,810 --> 00:10:33,250 Es ist nichts technischen per se, aber es ist nur eine Art von 227 00:10:33,250 --> 00:10:36,490 allgemeine Weise, sich auszudrücken ziemlich genau, 228 00:10:36,490 --> 00:10:39,730 ziemlich algorithmisch, ziemlich prozedural, aber ohne 229 00:10:39,730 --> 00:10:42,570 zu müssen, um welche Sprache Sie ausdrücken Sorgen 230 00:10:42,570 --> 00:10:43,150 Sie in. 231 00:10:43,150 --> 00:10:46,280 Es ist einige Modelle der englischen und Programmiersprachen mit 232 00:10:46,280 --> 00:10:48,790 die Sie vertraut sein passieren, so dass wir beginnen können 233 00:10:48,790 --> 00:10:50,600 schriftlich diese Art der Sache, wie wir gehen. 234 00:10:50,600 --> 00:10:54,450 Und in der Tat, Joseph, ich könnte leihen Sie sich auf der Bühne zu sein 235 00:10:54,450 --> 00:10:55,490 Schreiber hier? 236 00:10:55,490 --> 00:11:00,130 Ich habe es hier weiter im Voraus gegangen und vergessen zu setzen 237 00:11:00,130 --> 00:11:02,920 auf einigen Socken heute, und das wird unter unseren mehr sein 238 00:11:02,920 --> 00:11:03,780 lächerliche Beispiele. 239 00:11:03,780 --> 00:11:04,580 >> Nun, ich brauche dich hier. 240 00:11:04,580 --> 00:11:05,630 Ich werde tun, die Socken Teil. 241 00:11:05,630 --> 00:11:08,040 Hier haben wir also ein wenig Notizblock. 242 00:11:08,040 --> 00:11:09,940 Das ist buchstäblich nur in einer Mac TextEdit. 243 00:11:09,940 --> 00:11:12,270 Wir sind nicht wirklich nach ein lauffähiges Programm zu schreiben, aber 244 00:11:12,270 --> 00:11:14,220 wir gerade anfangen zu skizzieren Pseudocode basierte 245 00:11:14,220 --> 00:11:17,830 auf einige der Ratschläge, die Sie mir hier. 246 00:11:17,830 --> 00:11:20,760 So, hier ist meine Stapel Socken zu Hause. 247 00:11:20,760 --> 00:11:23,320 Ich habe keine Socken an, wenn ich aufwache am Morgen, und wir haben jetzt 248 00:11:23,320 --> 00:11:26,280 müssen Sie ein Programm schreiben, einen Algorithmus von Sorten, mit denen 249 00:11:26,280 --> 00:11:27,900 um diese Socken an den Füßen zu bekommen. 250 00:11:27,900 --> 00:11:30,860 Und auf dem Weg, lasst uns sehen, ob wir stolpern oder stoßen, 251 00:11:30,860 --> 00:11:32,860 einige der Ideen, dass Sie gehen zu müssen, starten 252 00:11:32,860 --> 00:11:35,470 Nachdenken über viel mehr ernst, wenn die Programmierung 253 00:11:35,470 --> 00:11:37,950 damit Ihre Programme verhalten sich nicht ganz so gedacht. 254 00:11:37,950 --> 00:11:39,580 >> So sitze ich hier unten. 255 00:11:39,580 --> 00:11:41,180 Ich habe meine Stapel Socken. 256 00:11:41,180 --> 00:11:43,780 Was ist das erste, was ein vernünftiger Mensch tun würde 257 00:11:43,780 --> 00:11:46,600 tun, wenn das Ziel ist, an einem Paar Socken angezogen? 258 00:11:46,600 --> 00:11:49,190 Mir jemand ein Schritt, und nur ein Schritt. 259 00:11:49,190 --> 00:11:49,796 Yeah? 260 00:11:49,796 --> 00:11:50,690 PUBLIKUM: bücken. 261 00:11:50,690 --> 00:11:54,290 DAVID MALAN: Bücken, Okay. 262 00:11:54,290 --> 00:11:55,540 Schritt zwei. 263 00:11:59,975 --> 00:12:00,645 Schritt zwei. 264 00:12:00,645 --> 00:12:01,840 PUBLIKUM: Nehmen Sie Ihre Socken. 265 00:12:01,840 --> 00:12:03,220 DAVID MALAN: Nehmen Sie Ihre Socken. 266 00:12:03,220 --> 00:12:07,610 Okay, ist so gering, Ambiguität hier, und dies ist eines der ersten 267 00:12:07,610 --> 00:12:09,380 Stolpersteine, dass wir sollen gezielt 268 00:12:09,380 --> 00:12:10,290 stoßen hier. 269 00:12:10,290 --> 00:12:14,110 Es ist ein wenig zweideutig, so holen Sie Ihre Socken. 270 00:12:14,110 --> 00:12:17,425 Fein, ich nehme dieses, sondern ein Computer, in nur einer klar 271 00:12:17,425 --> 00:12:20,420 bit, wird nicht diese Art von menschlicher Instinkt einfach 272 00:12:20,420 --> 00:12:21,490 wählen Sie die nächste ein. 273 00:12:21,490 --> 00:12:23,590 Wir werden damit beginnen, es dauerte nicht lange, mit dem Ausdruck 274 00:12:23,590 --> 00:12:24,610 uns genauer. 275 00:12:24,610 --> 00:12:26,600 >> Alles klar, also Schritt zwei ist abholen Socke. 276 00:12:26,600 --> 00:12:27,520 Wir nehmen es. 277 00:12:27,520 --> 00:12:28,620 Schritt drei. 278 00:12:28,620 --> 00:12:29,532 Im Rücken. 279 00:12:29,532 --> 00:12:30,900 PUBLIKUM: Finden Sie ein passendes Paar. 280 00:12:30,900 --> 00:12:32,060 DAVID MALAN: Finden Sie passende Paar. 281 00:12:32,060 --> 00:12:34,740 Okay, so ist dies gut. 282 00:12:34,740 --> 00:12:35,650 Ich musste diese Socke wählen. 283 00:12:35,650 --> 00:12:39,200 So ist das Ziel, eine passende Socke zu finden, jetzt, aber was 284 00:12:39,200 --> 00:12:39,990 bedeutet das? 285 00:12:39,990 --> 00:12:42,130 Eine vernünftige Menschen, ähnlich wie am Mittwoch, als ich gerade 286 00:12:42,130 --> 00:12:44,700 wusste, wie man Mike Smith in einem Telefonbuch zu finden, nur eine Art 287 00:12:44,700 --> 00:12:45,640 gingen mit ihren Instinkt. 288 00:12:45,640 --> 00:12:49,220 Aber hier ist es natürlich diese Socke hier, aber ein Computer ist 289 00:12:49,220 --> 00:12:51,350 nicht zu sein, so instinktiv. 290 00:12:51,350 --> 00:12:53,830 Ein Computer wird eine Sammlung von Bits haben, wie wir 291 00:12:53,830 --> 00:12:55,380 diskutiert am Mittwoch, und das sind 292 00:12:55,380 --> 00:12:56,710 irgendwie im Gedächtnis organisiert. 293 00:12:56,710 --> 00:13:00,400 Aber der Punkt ist, dass ein Computer nur die Fähigkeit besitzt 294 00:13:00,400 --> 00:13:03,390 auf Dinge, die man in einer Zeit sehen, und in der Tat, auch wenn wir 295 00:13:03,390 --> 00:13:05,980 Menschen - auch wenn es, wie ich nach unten schaute und eine geteilte Ansicht 296 00:13:05,980 --> 00:13:08,900 Sekunden später weiß ich, wo die Socke ist, mein Gehirn und meine Augen 297 00:13:08,900 --> 00:13:12,000 Vermutlich hat eine schnelle jener Socken überfliegen, und dann verriegelt 298 00:13:12,000 --> 00:13:13,400 auf dem in Frage. 299 00:13:13,400 --> 00:13:15,780 >> Wenn wir also umso bewusste nun als einen Computer, 300 00:13:15,780 --> 00:13:17,780 wie finde ich dieses Matching Paar? 301 00:13:17,780 --> 00:13:18,890 Nun, wir haben zu durchlaufen. 302 00:13:18,890 --> 00:13:21,440 Wir müssen vielleicht Schleife über dieses Durcheinander von Socken über die 303 00:13:21,440 --> 00:13:25,760 Boden, wodurch ich etwas sagen wie FÜR JEDEN Socke, holen sie 304 00:13:25,760 --> 00:13:30,195 auf, und wenn die gleiche Form und Größe wie die andere, DANN 305 00:13:30,195 --> 00:13:32,150 Punkt, Punkt, Punkt, werden wir weiterhin die Geschichte. 306 00:13:32,150 --> 00:13:34,430 Also für jeden Socke, so nehme ich diese ein. 307 00:13:34,430 --> 00:13:36,520 Ich prüfe diese gleich diesem ein. 308 00:13:36,520 --> 00:13:38,250 Es ist nicht, so dass ich beiseite Seite. 309 00:13:38,250 --> 00:13:39,220 Dann habe ich wieder durchlaufen. 310 00:13:39,220 --> 00:13:40,340 Ist das ein gleich? 311 00:13:40,340 --> 00:13:42,010 Nein, es ist nicht der Fall, so habe ich es beiseite. 312 00:13:42,010 --> 00:13:42,710 Ist das ein? 313 00:13:42,710 --> 00:13:43,200 Nein. 314 00:13:43,200 --> 00:13:43,670 Dieses? 315 00:13:43,670 --> 00:13:44,520 Nein, und so weiter. 316 00:13:44,520 --> 00:13:48,730 Und dann endlich, hoffentlich werde ich diese Socke hier antreffen. 317 00:13:48,730 --> 00:13:51,350 Also, wenn es die gleiche Form, Größe ist, nimm es. 318 00:13:51,350 --> 00:13:53,980 >> Und nun, was wäre der nächste Schritt hier zu sein? 319 00:13:53,980 --> 00:13:54,402 Yeah? 320 00:13:54,402 --> 00:13:56,090 PUBLIKUM: Identifizieren rechts von links. 321 00:13:56,090 --> 00:13:58,980 DAVID MALAN: Okay, identifizieren rechts und links, so 322 00:13:58,980 --> 00:14:01,870 Glück, diese Art von Arbeiten. 323 00:14:01,870 --> 00:14:04,020 Ein wenig symmetrisch, oder ich habe gerade getragen sie auf diese Weise. 324 00:14:04,020 --> 00:14:07,020 Alles klar, also habe ich das Recht identifiziert. 325 00:14:07,020 --> 00:14:09,980 Und nun, bevor wir fortfahren, lassen Sie mich darauf hinweisen, was Joseph 326 00:14:09,980 --> 00:14:12,890 hier getan als eine Art versierte Programmierer. 327 00:14:12,890 --> 00:14:15,800 Also noch einmal, es gibt keine ein Weg dies zu tun, aber mehr als nur 328 00:14:15,800 --> 00:14:18,480 Nummerierung der Linien, hat Joseph bereits begonnen, dies zu tun 329 00:14:18,480 --> 00:14:19,460 Art Einbuchtung. 330 00:14:19,460 --> 00:14:21,950 In der Tat ist dies eine sehr allgemeine Konvention in der Programmierung, 331 00:14:21,950 --> 00:14:26,110 wodurch dann, wenn Sie etwas tun, iterative, Looping Stil, wie 332 00:14:26,110 --> 00:14:28,480 wir mit dem englischen Ausdruck "für jeden was bedeutet, 333 00:14:28,480 --> 00:14:31,090 Socke, "die Konvention in Pseudocode und, wie wir sehen werden, 334 00:14:31,090 --> 00:14:33,410 normalen Programmiersprachen ist nur Gedankenstrich. 335 00:14:33,410 --> 00:14:36,240 Drücken Sie die Leertaste ein paar Mal, drücken Sie die Tab-Taste oder dergleichen, 336 00:14:36,240 --> 00:14:40,660 so dass verschachtelte unter "FÜR JEDEN Socke" ist das Stück 337 00:14:40,660 --> 00:14:43,430 Sachen, die Sie als Ergebnis dieser Schleife tun müssen. 338 00:14:43,430 --> 00:14:45,940 Also das ist alles, was Fördern semantisch ist. 339 00:14:45,940 --> 00:14:48,620 Nun unterdessen die "Wenn es die gleiche Form und Größe ist," die 340 00:14:48,620 --> 00:14:51,590 Tatsache, dass "Take it" ist eingerückt weiteren bedeutet nur, 341 00:14:51,590 --> 00:14:54,370 das ist die einzige Sache, die Sie, wenn diese Bedingung tun sollte, 342 00:14:54,370 --> 00:14:59,770 wenn der Zweig, dass Gabel in der Straße, ist in der Tat wahr. 343 00:14:59,770 --> 00:15:02,130 >> So, jetzt hier, wir Schritt vier sind, zu identifizieren rechts und links. 344 00:15:02,130 --> 00:15:03,410 Ich habe richtig identifiziert. 345 00:15:03,410 --> 00:15:05,150 Gib mir Schritt fünf. 346 00:15:05,150 --> 00:15:07,880 Und technisch gesehen, könnten wir wirklich nennen 347 00:15:07,880 --> 00:15:09,510 der für jede Sache - 348 00:15:09,510 --> 00:15:11,450 Sie sollten wahrscheinlich nummerieren Sie alle Zeilen, wenn 349 00:15:11,450 --> 00:15:12,190 werden wir dies tun. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [unverständlich] 351 00:15:14,006 --> 00:15:14,610 DAVID MALAN: [unverständlich]? 352 00:15:14,610 --> 00:15:16,070 Okay, gut, alles in Ordnung, wir tun es auf deine Weise. 353 00:15:16,070 --> 00:15:19,590 Alles klar, also Schritt fünf, wie machen wir das Recht Socke? 354 00:15:19,590 --> 00:15:22,310 Wie gehen wir nächsten gehen, hier? 355 00:15:22,310 --> 00:15:22,730 Ja? 356 00:15:22,730 --> 00:15:24,300 PUBLIKUM: Heben Sie das rechte Bein. 357 00:15:24,300 --> 00:15:27,100 DAVID MALAN: Heben Sie das rechte Bein, Okay. 358 00:15:27,100 --> 00:15:29,330 Schritt sechs? 359 00:15:29,330 --> 00:15:30,728 Schnell. 360 00:15:30,728 --> 00:15:31,202 Yeah. 361 00:15:31,202 --> 00:15:33,100 PUBLIKUM: Finden Sie eine offene Ende der Socke. 362 00:15:33,100 --> 00:15:34,440 DAVID MALAN: Okay, finden das offene Ende der Socke. 363 00:15:34,440 --> 00:15:34,840 So gut. 364 00:15:34,840 --> 00:15:37,180 Also hier, ehrlich gesagt, würde eine sehr häufige Instinkt nur sein, 365 00:15:37,180 --> 00:15:39,880 legte auf der rechten Socke, aber auch das ist ziemlich eindeutig. 366 00:15:39,880 --> 00:15:42,750 Wenn der Computer oder menschliche weiß genau, was das bedeutet, 367 00:15:42,750 --> 00:15:45,160 es wird nicht zu sein, daß auszuführen, so dass hier, ich habe 368 00:15:45,160 --> 00:15:46,520 fand die Eröffnung der Lager. 369 00:15:46,520 --> 00:15:48,222 Schritt sieben? 370 00:15:48,222 --> 00:15:49,700 PUBLIKUM: Berühren Sie Ihre Zehen. 371 00:15:49,700 --> 00:15:51,070 DAVID MALAN: Touch Zehen. 372 00:15:51,070 --> 00:15:53,546 Okay, jetzt gehen wir - 373 00:15:53,546 --> 00:15:56,480 Alles klar, werde ich einige Freiheiten hier stattfinden. 374 00:15:56,480 --> 00:15:57,110 Thanks. 375 00:15:57,110 --> 00:15:59,210 Schritt acht? 376 00:15:59,210 --> 00:16:00,060 Setzen Sie auf Socke. 377 00:16:00,060 --> 00:16:02,060 Okay, so dass ich jetzt denke, wir sind nah genug an der nehmen sortieren 378 00:16:02,060 --> 00:16:03,480 dieses zu Hause. 379 00:16:03,480 --> 00:16:05,980 Alles klar, so dass diese nach oben geht. 380 00:16:05,980 --> 00:16:07,950 Ich werde einige Freiheiten mit dem, was es bedeutet, zu nehmen, eigentlich. 381 00:16:07,950 --> 00:16:08,920 Legen Sie die Socke auf. 382 00:16:08,920 --> 00:16:10,853 Alles klar, jetzt Schritt neun? 383 00:16:10,853 --> 00:16:11,740 PUBLIKUM: Legen Fuß nach unten. 384 00:16:11,740 --> 00:16:12,510 DAVID MALAN: Danke. 385 00:16:12,510 --> 00:16:15,610 Schritt neun, legte Fuß nach unten, und jetzt können wir wiederholen. 386 00:16:15,610 --> 00:16:19,540 Daher ist anzunehmen, können wir nun in Schritt 10 gehen und sagen zu identifizieren 387 00:16:19,540 --> 00:16:21,960 linke Socke, aber das ist vermutlich schon getan. 388 00:16:21,960 --> 00:16:24,100 >> Und so ist, dann kann ich wiederholen Sie diese Schritte zu sortieren. 389 00:16:24,100 --> 00:16:25,260 Aber diese Art von wirft die Frage auf. 390 00:16:25,260 --> 00:16:28,100 Bevor das letzte Mal wollten wir etwas wiederhole, wir 391 00:16:28,100 --> 00:16:30,730 tat es iterativ immer wieder, dass eine FOR 392 00:16:30,730 --> 00:16:32,660 Jede Schleife sozusagen. 393 00:16:32,660 --> 00:16:36,420 Würde es Sinn machen, um eine Schleife zu verwenden, um sowohl umgehen 394 00:16:36,420 --> 00:16:38,470 die linke und die rechte Socke? 395 00:16:38,470 --> 00:16:40,460 Da es sich anfühlt, diese Operationen so ziemlich 396 00:16:40,460 --> 00:16:43,090 identisch bis auf die Tatsache, daß man hier und man beginnt 397 00:16:43,090 --> 00:16:44,850 Hier beginnt? 398 00:16:44,850 --> 00:16:47,400 Haben wir Schleife, oder haben wir nur halten schriftlich Schritte 399 00:16:47,400 --> 00:16:48,745 10 und 11 und 12? 400 00:16:48,745 --> 00:16:50,540 PUBLIKUM: Loop. 401 00:16:50,540 --> 00:16:52,240 >> DAVID MALAN: Okay, so Schleife. 402 00:16:52,240 --> 00:16:54,730 Ich tatsächlich gesagt haben könnte just keep going. 403 00:16:54,730 --> 00:16:55,720 Also, warum ist das so? 404 00:16:55,720 --> 00:16:57,940 Nun, das ist eigentlich das erste unserer nicht-offensichtliche 405 00:16:57,940 --> 00:17:01,210 Design-Entscheidungen, und in der Tat, einer der Metriken, mit denen 406 00:17:01,210 --> 00:17:03,990 wir beginnen zu bewerten, für uns und für Sie als 407 00:17:03,990 --> 00:17:06,780 Qualität eines Programms ist nur so gut konzipiert ist. 408 00:17:06,780 --> 00:17:09,619 Haben Sie die minimale Menge an Arbeit notwendig zu tun 409 00:17:09,619 --> 00:17:12,480 die Arbeit erledigt die meisten schnell, entweder in Form von 410 00:17:12,480 --> 00:17:15,430 Ihre Zeit oder in Form des Computers Laufzeit? 411 00:17:15,430 --> 00:17:17,589 Wie viele Operationen dauert es auszuführen? 412 00:17:17,589 --> 00:17:20,180 So wohl, ist dies eine Gelegenheit für eine Schleife, weil 413 00:17:20,180 --> 00:17:22,829 Sobald ich beginne Kopieren und Einfügen, wie Joseph effektiv 414 00:17:22,829 --> 00:17:25,010 würde tun beginnen in einem Moment, du bist Art verschwenden Ihre 415 00:17:25,010 --> 00:17:27,140 Zeit, und du bist als doppelt ausdrucksstark. 416 00:17:27,140 --> 00:17:30,260 >> Aber zur gleichen Zeit, sind diese wirklich nur zwei spezielle 417 00:17:30,260 --> 00:17:31,890 Fälle, links und rechts. 418 00:17:31,890 --> 00:17:34,930 Und während vor, ich hätte vielleicht 10 oder 20 oder mehr Socken 419 00:17:34,930 --> 00:17:37,960 ein Haufen, macht es durchaus Sinn nicht zu 50 Zeilen haben 420 00:17:37,960 --> 00:17:40,180 Code sagen check this Socke, dann wird die nächste, 421 00:17:40,180 --> 00:17:41,300 dann wird die nächste. 422 00:17:41,300 --> 00:17:43,450 Hier ist es ein bisschen weniger offensichtlich, und ich würde vorgeschlagen 423 00:17:43,450 --> 00:17:44,390 dass wir so oder so. 424 00:17:44,390 --> 00:17:46,720 Wir könnten entweder die Schleife, obwohl es Schleifen nur 425 00:17:46,720 --> 00:17:50,620 zweimal, oder wir könnten einfach kopieren und einfügen nur ein wenig 426 00:17:50,620 --> 00:17:53,270 hier, um den Job zu erledigen. 427 00:17:53,270 --> 00:17:55,210 Aber dieses Programm fehlerhaft ist, so zu sprechen. 428 00:17:55,210 --> 00:17:59,120 Es könnten einige Fehler, Irrtümer oder Ecke Fällen, so zum 429 00:17:59,120 --> 00:18:00,860 sprechen, dass wir nicht wirklich rechnen. 430 00:18:00,860 --> 00:18:03,400 Nichts ging schief dieser Zeit, aber was könnte falsch gelaufen sein 431 00:18:03,400 --> 00:18:06,100 Beim Ausführen dieses Programms? 432 00:18:06,100 --> 00:18:07,040 PUBLIKUM: Sie haben noch keine Socken. 433 00:18:07,040 --> 00:18:08,980 >> DAVID MALAN: So könnte es keine Socken dort immer. 434 00:18:08,980 --> 00:18:10,380 So betrachten wir diese Ecke Fall. 435 00:18:10,380 --> 00:18:14,670 Wenn wir also zurück konnte scrollen, um einen Schritt, so Schritt war 436 00:18:14,670 --> 00:18:16,540 bücken, so dass die Kontrollen. 437 00:18:16,540 --> 00:18:21,250 Schritt zwei, nimm deine Socken, aber dann die passende Socke, 438 00:18:21,250 --> 00:18:22,420 identifizieren rechts. 439 00:18:22,420 --> 00:18:25,050 Wir Art machte eine ganze Reihe von Annahmen, und das ist, 440 00:18:25,050 --> 00:18:27,720 ehrlich gesagt, warum Programm manchmal zum Absturz. 441 00:18:27,720 --> 00:18:30,240 Wenn Sie der Programmierer wurden bestimmte Annahmen, wie aus 442 00:18:30,240 --> 00:18:33,000 sicher es geht um Socken oder doch es geht sein 443 00:18:33,000 --> 00:18:35,310 in den Speicher des Computers übrig sein, sicher es geht 444 00:18:35,310 --> 00:18:37,420 Speicherplatz auf der Festplatte übrig bleiben - 445 00:18:37,420 --> 00:18:39,040 Nun, wenn Sie machen diese Annahmen, und das ist nicht, 446 00:18:39,040 --> 00:18:41,880 in der Tat, die Wirklichkeit, wer weiß manchmal, was der Computer 447 00:18:41,880 --> 00:18:42,520 tun? 448 00:18:42,520 --> 00:18:44,450 Und manchmal, wenn man die Spinnerei Beachball oder die 449 00:18:44,450 --> 00:18:47,750 gefrorenen Windows oder dergleichen, die, gerade weil es einige 450 00:18:47,750 --> 00:18:50,980 Programmierer nicht rechnen diese sogenannte Grenzfälle. 451 00:18:50,980 --> 00:18:53,050 Was sonst könnte gegangen in diesem Programm falsch gemacht haben? 452 00:18:53,050 --> 00:18:53,330 Yeah? 453 00:18:53,330 --> 00:18:55,950 >> PUBLIKUM: Sie haben keinen rechten Bein und ein linkes Bein. 454 00:18:55,950 --> 00:18:58,920 DAVID MALAN: Okay, vielleicht nicht sowohl ein rechtes Bein und eine 455 00:18:58,920 --> 00:19:01,940 linkes Bein, und so das Programm möglicherweise nicht universell sein, 456 00:19:01,940 --> 00:19:02,590 anwendbar. 457 00:19:02,590 --> 00:19:03,658 Andere? 458 00:19:03,658 --> 00:19:05,650 PUBLIKUM: Sie hat möglicherweise ein Waisenkind Socke abgeholt. 459 00:19:05,650 --> 00:19:07,970 DAVID MALAN: Ich hat möglicherweise ein Waisenkind Socke abgeholt, so dass eine 460 00:19:07,970 --> 00:19:11,250 nicht passenden Socken, die gerade hat keine Geschwister, weil ich 461 00:19:11,250 --> 00:19:13,650 verloren, es zerrissen ist, ist es in der Wäsche noch, oder dergleichen. 462 00:19:13,650 --> 00:19:15,550 Also das hat auch nicht wirklich behandelt. 463 00:19:15,550 --> 00:19:15,790 Yeah? 464 00:19:15,790 --> 00:19:17,510 PUBLIKUM: Möglicherweise schon Socken an. 465 00:19:17,510 --> 00:19:19,050 DAVID MALAN: Ich könnte schon Socken an. 466 00:19:19,050 --> 00:19:20,080 Ich habe nicht wirklich zu überprüfen. 467 00:19:20,080 --> 00:19:23,350 WENN Sie nicht Socken, dann gehen Sie zu tun 468 00:19:23,350 --> 00:19:24,330 Linie eins und zwei. 469 00:19:24,330 --> 00:19:24,980 Und das könnte passieren. 470 00:19:24,980 --> 00:19:26,880 Sie schlafen mit Ihrem Socken und dergleichen, so 471 00:19:26,880 --> 00:19:28,860 Das ist auch eine sehr vernünftige Ecke Fall. 472 00:19:28,860 --> 00:19:29,630 Und vielleicht eine andere? 473 00:19:29,630 --> 00:19:31,310 PUBLIKUM: Der Strumpf ist innen heraus. 474 00:19:31,310 --> 00:19:34,000 DAVID MALAN: Also die Socke ist innen heraus, so haben wir keinen Fehler 475 00:19:34,000 --> 00:19:35,330 Prüfen, kurz. 476 00:19:35,330 --> 00:19:38,550 Wir haben nicht prüfen, ob der Zustand der Welt ist, wie wir erwarten. 477 00:19:38,550 --> 00:19:41,310 Wir wussten nicht ob wir gefunden, was wir eigentlich suchen. 478 00:19:41,310 --> 00:19:43,310 >> Und obwohl dies eine Art lächerlichen beispielsweise 479 00:19:43,310 --> 00:19:46,110 mit Socken, am Ende des Tages, ist dies genau die 480 00:19:46,110 --> 00:19:48,740 Art Denkweise müssen Sie haben, während das Schreiben von Programmen, 481 00:19:48,740 --> 00:19:51,740 auch in Scratch sowie in C, in JavaScript, PHP, 482 00:19:51,740 --> 00:19:53,920 denn sonst werden Ihre Programme weisen die 483 00:19:53,920 --> 00:19:56,980 entspricht dieser Spinning Beachball oder einfach nachgeben 484 00:19:56,980 --> 00:19:58,210 ungenauen Ergebnissen. 485 00:19:58,210 --> 00:20:00,250 Also vielen Dank hier, um unsere Schreiber Joseph. 486 00:20:00,250 --> 00:20:05,060 [Applaus] 487 00:20:05,060 --> 00:20:06,850 >> DAVID MALAN: All right, so was ist, in 488 00:20:06,850 --> 00:20:08,230 Tatsächlich ein Computerprogramm? 489 00:20:08,230 --> 00:20:09,670 Nun, lassen Sie uns einen kurzen Blick auf eine 490 00:20:09,670 --> 00:20:11,100 Vertreter hier. 491 00:20:11,100 --> 00:20:15,260 Das ist also ein Programm in einer Sprache namens C. C ist geschrieben 492 00:20:15,260 --> 00:20:17,830 ziemlich alt in diesen Tagen, aber viele neuere Sprachen gebaut 493 00:20:17,830 --> 00:20:18,460 oben drauf. 494 00:20:18,460 --> 00:20:21,180 In der Tat, PHP, einer der Web-centric Sprachen wir 495 00:20:21,180 --> 00:20:24,050 verwenden zur Laufzeit das Ende, hat sich, was als ein 496 00:20:24,050 --> 00:20:27,550 Dolmetscher, ein Programm, das in C geschrieben ist, aber mehr dazu 497 00:20:27,550 --> 00:20:28,690 in vielen Wochen ab jetzt. 498 00:20:28,690 --> 00:20:30,840 Aber dieses Programm, und das ist, was es zu einem Schreiben heißt 499 00:20:30,840 --> 00:20:32,880 Programm, wenn auch ein sehr einfaches. 500 00:20:32,880 --> 00:20:35,540 Wir haben einige ziemlich kryptische Syntax hier, aber du kannst 501 00:20:35,540 --> 00:20:38,340 wahrscheinlich erraten, auch wenn Sie noch nie programmiert haben, was 502 00:20:38,340 --> 00:20:39,750 dieses Programm macht. 503 00:20:39,750 --> 00:20:43,640 In der Tat, ich weiß nicht, was printf, aber gedruckt sicherlich 504 00:20:43,640 --> 00:20:45,700 beschwört die Idee der Druck etwas heraus. 505 00:20:45,700 --> 00:20:48,590 Und so ja, wird dieses Programm letztendlich gehen ausdrucken 506 00:20:48,590 --> 00:20:50,250 die Worte "Hallo, Welt". 507 00:20:50,250 --> 00:20:53,390 >> Nun, ob Sie einen Mac oder einen PC oder einen Linux-Rechner, odds 508 00:20:53,390 --> 00:20:55,550 sind, zumindest, wenn Sie einige heruntergeladen frei 509 00:20:55,550 --> 00:20:58,000 verfügbare Software, könnten Sie wurden schriftlich Programme auf 510 00:20:58,000 --> 00:21:00,310 Ihren eigenen Laptop seit geraumer Zeit. 511 00:21:00,310 --> 00:21:03,040 Auf Mac OS, zum Beispiel, gibt es dieses Programm aufgerufen 512 00:21:03,040 --> 00:21:05,340 Terminal, das mit einem Mac, die in der Regel ist in Ihrem kommt 513 00:21:05,340 --> 00:21:07,550 Ordner Dienstprogramme, und es in der Regel öffnet sich ein schwarz- 514 00:21:07,550 --> 00:21:09,820 weiß oder weiß und schwarz Fenster, an dem Sie einen 515 00:21:09,820 --> 00:21:11,410 aufgefordert, an dem Sie Befehle eingeben können. 516 00:21:11,410 --> 00:21:13,060 Also das ist eigentlich das erinnert, was Computern 517 00:21:13,060 --> 00:21:15,100 verwendet werden, um vor der grafischen Benutzeroberfläche sein 518 00:21:15,100 --> 00:21:16,710 Schnittstellen, GUIs, kam. 519 00:21:16,710 --> 00:21:19,200 Nun, in Windows, Sie haben einen ähnlichen Mechanismus in Form 520 00:21:19,200 --> 00:21:20,130 der Eingabeaufforderung. 521 00:21:20,130 --> 00:21:23,430 >> Aber was ich hier zu tun ist öffnen, sagen wir mal, 522 00:21:23,430 --> 00:21:26,580 TextEdit wieder, so das gleiche Programm wurden wir für den Einsatz 523 00:21:26,580 --> 00:21:28,870 Pseudocode vor einem Augenblick, und ich werde weitermachen und 524 00:21:28,870 --> 00:21:30,080 schreibe meine erste Programm. 525 00:21:30,080 --> 00:21:34,030 Include stdio.h, was immer das bedeutet, int main 526 00:21:34,030 --> 00:21:36,880 Leere, was immer das bedeutet, und dann in der Mitte hier, 527 00:21:36,880 --> 00:21:40,560 printf ("Hallo Welt."). Und schließen Sie dann zitieren, 528 00:21:40,560 --> 00:21:42,340 schließen paren, Semikolon. 529 00:21:42,340 --> 00:21:44,460 Jetzt werde ich nach vorne und drücken Sie einfach Command-S gehen. Ich werde 530 00:21:44,460 --> 00:21:47,650 gehen Sie vor und speichern Sie diese als hello.c, so die Konvention in 531 00:21:47,650 --> 00:21:50,530 die Welt der C-Programmierung ist benennen Sie die Datei dot c. 532 00:21:50,530 --> 00:21:52,880 Ich werde nur im John Harvard Home-Verzeichnis gesetzt, 533 00:21:52,880 --> 00:21:56,370 Hier klicken Sie auf Speichern, und jetzt werde ich gehen über dies 534 00:21:56,370 --> 00:21:59,110 Terminal-Fenster, das wiederum ist schwarz und weiß prompt 535 00:21:59,110 --> 00:22:00,860 wo kann ich Befehle ausführen. 536 00:22:00,860 --> 00:22:04,550 >> Ich kann Programme, indem Sie ihren Namen laufen, nicht durch 537 00:22:04,550 --> 00:22:06,710 Doppelklick Symbole im üblichen Sinne. 538 00:22:06,710 --> 00:22:10,590 Aber die Sache ist zu C ist, dass eine Sprache wie C erste 539 00:22:10,590 --> 00:22:13,150 kommt in dieser Form als etwas Quellcode. 540 00:22:13,150 --> 00:22:15,400 Etwas, das ein wenig aussieht wie Englisch, ist aber 541 00:22:15,400 --> 00:22:17,980 definitiv weniger wie Englisch als Pseudocode a Josephs 542 00:22:17,980 --> 00:22:18,930 vorhin. 543 00:22:18,930 --> 00:22:20,560 Es ist ein wenig mehr geheimnisvoll. 544 00:22:20,560 --> 00:22:22,830 Es scheint einige Muster oder Regeln zu befolgen. 545 00:22:22,830 --> 00:22:25,300 Die Tatsache, dass ich geschweiften Klammern, Semikolons, Zitate, haben 546 00:22:25,300 --> 00:22:28,240 Winkel Klammern, fühlt sich wie ein Computer kam mit dieser 547 00:22:28,240 --> 00:22:29,250 Art von Sprache. 548 00:22:29,250 --> 00:22:32,010 Aber wenn ich jetzt, zu diesem Terminal-Fenster zu gehen, kann ich einen 549 00:22:32,010 --> 00:22:35,250 Befehl, werde diesen Quellcode umwandeln IS 550 00:22:35,250 --> 00:22:36,610 etwas namens Objekt-Code. 551 00:22:36,610 --> 00:22:39,690 Das wird Deutsch-ähnliche Syntax, um Nullen konvertieren 552 00:22:39,690 --> 00:22:41,760 und diejenigen, die gleiche Art von Nullen und Einsen wir 553 00:22:41,760 --> 00:22:42,820 gesprochen Mittwoch. 554 00:22:42,820 --> 00:22:44,810 Nun, ich werde einen Befehl namens Clang laufen. 555 00:22:44,810 --> 00:22:47,750 Mehr dazu in den kommenden Wochen, aber es ist ein Programm mit 556 00:22:47,750 --> 00:22:52,330 die ich umwandeln kann in eine ganze Reihe hello.c 557 00:22:52,330 --> 00:22:53,640 von Nullen und Einsen. 558 00:22:53,640 --> 00:22:54,950 >> Nun, ich habe diesen Befehl auszuführen. 559 00:22:54,950 --> 00:22:57,940 Ich habe Clang laufen, und dann sagte ich laufen selbst auf diese Datei 560 00:22:57,940 --> 00:23:00,630 genannt hello.c, welches ich vor einem Augenblick, und 561 00:23:00,630 --> 00:23:02,090 Nichts scheint zu passieren. 562 00:23:02,090 --> 00:23:05,550 Aber in der Tat, wenn ich um mein Home-Verzeichnis steckte, würde ich sehen, 563 00:23:05,550 --> 00:23:09,620 dass diese blöde benannte Programm a.out jetzt existiert. 564 00:23:09,620 --> 00:23:12,250 Dies ist nur der Default-Name für ein Programm beim Schreiben in 565 00:23:12,250 --> 00:23:15,140 C. Wir können dies schließlich überschreiben, aber a.out ist die 566 00:23:15,140 --> 00:23:18,340 Name des Programms, Ich habe gerade umgebaut Nullen und Einsen. 567 00:23:18,340 --> 00:23:21,490 Und jetzt, da es Nullen und Einsen, mein Mac, in diesem Fall, oder 568 00:23:21,490 --> 00:23:24,670 Ihren Windows-PC, kann verstehen, jene Bits, diese 569 00:23:24,670 --> 00:23:25,410 Nullen und Einsen. 570 00:23:25,410 --> 00:23:29,130 Und so, wenn ich Enter drücken, sehe ich "Hallo Welt!" 571 00:23:29,130 --> 00:23:31,270 >> Aber es ist ein bisschen buggy. 572 00:23:31,270 --> 00:23:34,110 Ich wusste nicht genau sagen "Hallo, Welt: Luft: - jharvard." Die Luft ist 573 00:23:34,110 --> 00:23:35,020 der Name meines Computers. 574 00:23:35,020 --> 00:23:37,730 Jharvard ist der Name des Kontos, so was habe ich deutlich 575 00:23:37,730 --> 00:23:41,070 weglassen aus dem Programm? 576 00:23:41,070 --> 00:23:42,480 Irgendeine Art von Zeilenumbruch. 577 00:23:42,480 --> 00:23:45,150 Ich habe nicht das Äquivalent von Enter oder die Zeilenschaltung getroffen, 578 00:23:45,150 --> 00:23:47,760 und dies ist wiederum Beleg für die Tatsache, dass Computer kann 579 00:23:47,760 --> 00:23:49,800 nur tun, was man von ihnen erzählen. 580 00:23:49,800 --> 00:23:52,400 Und die Tatsache, dass ich nicht sagen dem Computer, bewegen Sie den 581 00:23:52,400 --> 00:23:53,860 Cursor in die nächste Zeile - 582 00:23:53,860 --> 00:23:55,200 Nun, es ist sicher nicht einfach machen 583 00:23:55,200 --> 00:23:56,750 presumptuously für mich. 584 00:23:56,750 --> 00:24:00,860 Also, wenn ich zurück in mein Programm, und ich sage \ n - 585 00:24:00,860 --> 00:24:03,180 So \ n, wie wir bald sehen werden, ist der Weg der 586 00:24:03,180 --> 00:24:06,910 vertreten seltsame Dinge wie neue Zeile Zeichen, Dinge 587 00:24:06,910 --> 00:24:08,840 das wäre sonst die Folge sein 588 00:24:08,840 --> 00:24:09,940 Schlagen Sie die Enter-Taste. 589 00:24:09,940 --> 00:24:11,730 Aber jetzt weiß nur, dass die Eingabetaste gedrückt haben würde 590 00:24:11,730 --> 00:24:14,170 nur machen unseren Code seltsam aussehen, so dass die Welt entschieden, wissen Sie, 591 00:24:14,170 --> 00:24:16,580 was, um die Dinge schöner, um es auf einer Linie zu halten, lassen Sie uns 592 00:24:16,580 --> 00:24:19,070 nur sagen \ n eine neue Zeile. 593 00:24:19,070 --> 00:24:22,260 Lassen Sie mich erneut speichern meine Datei, gehen Sie zurück zum Terminal-Fenster und 594 00:24:22,260 --> 00:24:25,290 re-run a.out, Enter. 595 00:24:25,290 --> 00:24:28,374 Noch buggy, aber warum? 596 00:24:28,374 --> 00:24:29,750 >> PUBLIKUM: [unverständlich] 597 00:24:29,750 --> 00:24:31,540 DAVID MALAN: Yeah, so muss ich es neu kompilieren. 598 00:24:31,540 --> 00:24:34,610 So ein Programm zu kompilieren bedeutet nur, wandeln sie von der Quelle 599 00:24:34,610 --> 00:24:37,660 Code zum Objektcodes, Quellcode zu Nullen und Einsen. 600 00:24:37,660 --> 00:24:40,830 Nun hat die bloße Tatsache, dass ich in diesem TextEdit getroffen Speichern nicht 601 00:24:40,830 --> 00:24:43,450 trägt auf diese Nullen und Einsen, weil ich muss zuerst 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, habe ich diese Zeilen Code geändert, die 603 00:24:48,260 --> 00:24:49,040 Quellcode. 604 00:24:49,040 --> 00:24:51,010 Sie müssen a.out regenerieren. 605 00:24:51,010 --> 00:24:52,990 Nichts scheint passiert zu sein, aber in einem Computer, 606 00:24:52,990 --> 00:24:55,820 in einer Befehlszeile, um so zu sprechen, wenn nichts passiert, 607 00:24:55,820 --> 00:24:57,510 das bedeutet in der Regel alles ist gut. 608 00:24:57,510 --> 00:24:59,040 Wenn etwas passiert, bedeutet dies, 609 00:24:59,040 --> 00:25:00,420 Sie durcheinander, in der Regel. 610 00:25:00,420 --> 00:25:04,020 >> Also lasst uns jetzt gehen, um a.out, und in der Tat, jetzt habe ich "Hallo, 611 00:25:04,020 --> 00:25:04,440 Welt ". 612 00:25:04,440 --> 00:25:05,990 Und nun, was über diese Nullen und Einsen? 613 00:25:05,990 --> 00:25:07,520 Wobei in der Tat sind die? 614 00:25:07,520 --> 00:25:10,710 Nun, ich kann nicht wirklich nur eine Art Sack um sehr 615 00:25:10,710 --> 00:25:11,210 wirksam. 616 00:25:11,210 --> 00:25:12,650 Lassen Sie mich eröffnen TextEdit. 617 00:25:12,650 --> 00:25:14,060 Hier ist a.out. 618 00:25:14,060 --> 00:25:17,390 Lassen Sie mich gehen Sie vor und öffnen Sie diese, und das ist offenbar, was meine 619 00:25:17,390 --> 00:25:19,080 Programm aussieht. 620 00:25:19,080 --> 00:25:21,570 Also habe ich eröffnet, nicht hello.c, aber a.out. 621 00:25:21,570 --> 00:25:23,960 Aber das ist eigentlich nicht das, was mein Programm wirklich ist. 622 00:25:23,960 --> 00:25:26,450 Natürlich ist dies eine Art der alphabetischen Zeichen. 623 00:25:26,450 --> 00:25:28,670 Ich sehe keine Nullen und Einsen, aber dies ist 624 00:25:28,670 --> 00:25:30,780 weil a.out ist ein Programm. 625 00:25:30,780 --> 00:25:33,540 Nullen und Einsen - aber TextEdit, wie der Name andeutet, ist es 626 00:25:33,540 --> 00:25:37,130 wie Notepad unter Windows, ist nur ein Text-Editor, so ist es 627 00:25:37,130 --> 00:25:39,730 verwirrend alle diese Nullen und Einsen als 628 00:25:39,730 --> 00:25:41,870 wären sie, was? 629 00:25:41,870 --> 00:25:43,380 ASCII-Zeichen. 630 00:25:43,380 --> 00:25:45,020 >> So am Mittwoch erinnern, wir haben gerade kam mit dieser 631 00:25:45,020 --> 00:25:48,740 beliebige Zuordnung von Zahlen, oder Bits, um Buchstaben des 632 00:25:48,740 --> 00:25:51,690 Alphabet und Satzzeichen und dergleichen. 633 00:25:51,690 --> 00:25:54,920 So TextEdit, dass es ein Text-Editor ist falsch interpretiert 634 00:25:54,920 --> 00:25:57,270 diese Muster von Nullen und Einsen, die eigentlich als werden 635 00:25:57,270 --> 00:25:59,990 Druck Wörter, wie "Hallo, Welt". Es zeigt sie 636 00:25:59,990 --> 00:26:02,150 als ASCII, und deshalb ist es ein wenig chaotisch aussieht. 637 00:26:02,150 --> 00:26:04,910 Nun, es gibt einige Hinweise auf die Richtigkeit hier. 638 00:26:04,910 --> 00:26:08,090 Beachten Sie, wenn ich hervorheben, gibt es einen Hauch von Wirklichkeit "Hallo, 639 00:26:08,090 --> 00:26:10,810 Welt ", so irgendwo in diesem Programm ist 640 00:26:10,810 --> 00:26:12,120 der Satz, den ich geschrieben habe. 641 00:26:12,120 --> 00:26:14,610 Aber lassen Sie uns fortfahren und jetzt mit einem anderen Programm zu sehen. 642 00:26:14,610 --> 00:26:17,420 Dies ist nicht, was wir so oft verwenden werden, aber es kommt auch mit 643 00:26:17,420 --> 00:26:19,970 a Mac und wird innerhalb des CS50 Gerät sein. 644 00:26:19,970 --> 00:26:23,940 Lassen Sie mich gehen Sie vor und öffnen Sie mit einem Programm namens XXD. 645 00:26:23,940 --> 00:26:26,530 >> Zurück in den Tag, wurden die meisten Programme benannt ziemlich kryptisch, 646 00:26:26,530 --> 00:26:28,200 und so der Trend anhält. 647 00:26:28,200 --> 00:26:31,160 Aber-b bedeutet, spuckte dieses Programm als binär. 648 00:26:31,160 --> 00:26:32,330 Sie es nicht ausführen. 649 00:26:32,330 --> 00:26:35,770 Zeigt es mir, als Nullen und Einsen, und dies ist der C 650 00:26:35,770 --> 00:26:37,190 programmieren wir gerade geschrieben haben. 651 00:26:37,190 --> 00:26:39,920 Nun, ich als Mensch hier, ich ehrlich gesagt keine Ahnung, was 652 00:26:39,920 --> 00:26:42,230 diese verschiedenen Muster von Nullen und Einsen zu repräsentieren. 653 00:26:42,230 --> 00:26:45,320 Zurück in den Tag, ich mit meinen Lochkarten oder dergleichen, würde 654 00:26:45,320 --> 00:26:48,080 tatsächlich zu schauen, was diese verschiedenen Mustern 655 00:26:48,080 --> 00:26:51,560 01111000, eigentlich darstellen. 656 00:26:51,560 --> 00:26:54,390 Oder schlimmer noch, brauche ich, um das Stanzen oder die Schöpfung zu tun 657 00:26:54,390 --> 00:26:56,130 dieser Muster von Nullen und Einsen. 658 00:26:56,130 --> 00:27:00,410 Aber jetzt, auf dem Glauben, dass eine CPU, Intel inside, so nehmen 659 00:27:00,410 --> 00:27:03,440 zu sprechen, innerhalb der alle unsere Computer in diesen Tagen, weiß 660 00:27:03,440 --> 00:27:05,100 wie diese Nullen und Einsen zu interpretieren. 661 00:27:05,100 --> 00:27:07,010 Und einige Nullen und Einsen bedeuten Druck. 662 00:27:07,010 --> 00:27:09,040 Einige Nullen und Einsen bedeuten, einen Ton abspielen. 663 00:27:09,040 --> 00:27:13,630 Einige Nullen und Einsen bedeuten, nehmen Benutzereingaben aus einer Tastatur. 664 00:27:13,630 --> 00:27:15,960 Es gibt alle Arten von verschiedenen Mustern, aber wir glücklicherweise 665 00:27:15,960 --> 00:27:19,680 als Menschen, nur müssen in der Regel über die Programmierung bei Sorgen 666 00:27:19,680 --> 00:27:21,270 dies ziemlich höheren Niveau. 667 00:27:21,270 --> 00:27:24,320 Und in anderen CS-Klassen können Sie eintauchen tiefer und schauen 668 00:27:24,320 --> 00:27:26,820 Dinge wie diese Nullen und Einsen, oder noch 669 00:27:26,820 --> 00:27:28,000 anderem noch. 670 00:27:28,000 --> 00:27:29,210 >> So, jetzt lasst uns wandeln diese. 671 00:27:29,210 --> 00:27:32,550 Lasst uns sehr schnell weg von C und etwas einem zu bewegen 672 00:27:32,550 --> 00:27:36,390 wenig mehr tröstlich, ein wenig mehr spannend, dass 673 00:27:36,390 --> 00:27:39,340 können wir wieder unsere Animationen und Sounds und dergleichen, dass 674 00:27:39,340 --> 00:27:40,940 deutlich entkommen uns dabei haben 675 00:27:40,940 --> 00:27:42,480 ziemlich primitiv Schnittstelle. 676 00:27:42,480 --> 00:27:46,430 Also das gleiche Programm in C können jetzt in diesem vertreten sein 677 00:27:46,430 --> 00:27:50,060 Programmiersprache namens Scratch wie folgt. 678 00:27:50,060 --> 00:27:54,230 Dies ist das Äquivalent dieser Hallo Welt Programm, geschrieben in 679 00:27:54,230 --> 00:27:57,370 Diese Puzzleteil style Sprache namens Scratch. 680 00:27:57,370 --> 00:28:00,600 Also lass mich gehen Sie vor und öffnen diese sehr Programms. 681 00:28:00,600 --> 00:28:01,850 Es ist erneut aufgerufen Scratch. 682 00:28:01,850 --> 00:28:03,880 Es ist frei verfügbar und das ist das gleiche, was wir 683 00:28:03,880 --> 00:28:05,120 Starten Sie noch heute an. 684 00:28:05,120 --> 00:28:07,790 >> So ist das hier Scratch, und es ist bis in ein paar gebrochen 685 00:28:07,790 --> 00:28:09,700 verschiedenen Stücke. 686 00:28:09,700 --> 00:28:12,690 Ganz oben rechts, haben wir die sogenannte Stufe und 687 00:28:12,690 --> 00:28:13,670 ja, das ist, wo die Cookies 688 00:28:13,670 --> 00:28:15,440 durchgeführt nur ein bisschen her. 689 00:28:15,440 --> 00:28:19,660 Und auf der Bühne werden Dinge genannt Sprites, Zeichen oder 690 00:28:19,660 --> 00:28:21,030 Objekte oder Entitäten. 691 00:28:21,030 --> 00:28:23,320 Es spielt eigentlich keine Rolle, wie Sie an sie denken, aber sie 692 00:28:23,320 --> 00:28:26,740 programmierbar sind, bewegliche Sachen, und in diesem Fall, diese 693 00:28:26,740 --> 00:28:30,730 Programm, dass unser Student schrieb hat ein paar Lebkuchen 694 00:28:30,730 --> 00:28:32,990 Cookies, ein paar runde Kekse, eine ganze Reihe von 695 00:28:32,990 --> 00:28:35,430 Herzen, eine ganze Reihe von Brillen. 696 00:28:38,170 --> 00:28:42,420 Aus diesem Grund ist er oder sie in der Lage, jedes dieser programmieren 697 00:28:42,420 --> 00:28:44,720 einzelne Zeichen getrennt. 698 00:28:44,720 --> 00:28:46,480 >> Nun, was bedeutet es, diese Zeichen zu programmieren? 699 00:28:46,480 --> 00:28:49,440 Nun, lassen Sie mich gehen Sie vor und klicken Sie auf diesen linken Cookie 700 00:28:49,440 --> 00:28:51,830 und blättern Sie auf die linke obere hier. 701 00:28:51,830 --> 00:28:53,670 In der linken oberen meines Bildschirms ist jetzt die 702 00:28:53,670 --> 00:28:55,280 sogenannte Script Bereich. 703 00:28:55,280 --> 00:28:58,790 Dies ist eine Art unbeschriebenes Blatt, zunächst, auf die ich kann 704 00:28:58,790 --> 00:29:01,540 Drag & Drop Puzzleteile, die, ehrlich gesagt, zu tun 705 00:29:01,540 --> 00:29:03,020 genau das, was sie sagen. 706 00:29:03,020 --> 00:29:05,820 An der Spitze dieses Stapels der Puzzleteile ist das Wort 707 00:29:05,820 --> 00:29:09,340 Wenn Green Flag Clicked, und wenn Sie nicht vor bemerken, 708 00:29:09,340 --> 00:29:12,300 die Art und Weise begann ich das Cookie Lied wurde Anklicken, buchstäblich, 709 00:29:12,300 --> 00:29:13,320 eine grüne Flagge. 710 00:29:13,320 --> 00:29:16,590 Damit Puzzleteil oben links gibt es, wenn die 711 00:29:16,590 --> 00:29:19,780 menschlichen klickt auf die grüne Fahne, ging zu tun 712 00:29:19,780 --> 00:29:21,110 die folgenden Dinge. 713 00:29:21,110 --> 00:29:23,330 >> Nun, was haben sie Cookie gehen zu tun? 714 00:29:23,330 --> 00:29:25,810 Ich weiß wirklich nicht, wie man dies noch zu interpretieren, aber die 715 00:29:25,810 --> 00:29:29,220 Cookie offenbar eingestellt seiner Nut auf Null, dann wartete er 716 00:29:29,220 --> 00:29:31,740 3 Sekunden, dann wechselte er seine Gruppe zu einem, dann ist es 717 00:29:31,740 --> 00:29:33,590 wartete eine Sekunde, dann änderte es seinen 718 00:29:33,590 --> 00:29:35,100 Nut zurück zu eins. 719 00:29:35,100 --> 00:29:37,373 Und dann dies tatsächlich aussieht wie ein bisschen wie ein Bug, sollte nicht 720 00:29:37,373 --> 00:29:39,440 muss die Nut wieder und wieder zu ändern, wenn es 721 00:29:39,440 --> 00:29:43,380 anderswo verändert, aber diese Reihe von Schritten ist, was 722 00:29:43,380 --> 00:29:46,800 diktieren das Verhalten dieser besonderen Cookie. 723 00:29:46,800 --> 00:29:49,180 Lassen Sie uns also tatsächlich wieder rollen und nicht etwas anschauen 724 00:29:49,180 --> 00:29:50,430 ganz so komplex und doch. 725 00:29:50,430 --> 00:29:52,260 Lassen Sie mich gehen Sie vor und gehen Sie zu Datei, Neu, 726 00:29:52,260 --> 00:29:53,560 und eine weiße Weste. 727 00:29:53,560 --> 00:29:56,590 >> So, jetzt habe ich tatsächlich ein leeres Skript-Bereich, eine leere Bühne, 728 00:29:56,590 --> 00:29:59,380 mit unseren Standard-Sprite Scratch und in der oberen linken 729 00:29:59,380 --> 00:30:01,670 auf meinem Bildschirm habe ich die Palette aller ihrer 730 00:30:01,670 --> 00:30:03,400 verfügbaren Puzzleteile. 731 00:30:03,400 --> 00:30:06,300 Und wir werden nicht durch fast, dass viele dieser Dinge 732 00:30:06,300 --> 00:30:09,470 heute, weil, wieder sind die meisten selbsterklärend, aber wir werden 733 00:30:09,470 --> 00:30:12,370 versuchen, sie zu kategorisieren und weisen darauf hin, die Ähnlichkeiten 734 00:30:12,370 --> 00:30:15,380 mit diesen zukünftigen Sprachen, die wir tauchen. 735 00:30:15,380 --> 00:30:19,180 Und oben links hier ist das erste Bei Green Flag Clicked, 736 00:30:19,180 --> 00:30:22,170 so lass mich ziehen diese hier, Verkleinern ein bisschen. 737 00:30:22,170 --> 00:30:25,780 Und wenn ich die grüne Fahne klicken, nichts wirklich passiert, weil 738 00:30:25,780 --> 00:30:29,360 Ich habe keine Logik angebracht, jede Aussage so zu sprechen, 739 00:30:29,360 --> 00:30:31,040 , dass grüne Fahne, so lass mich gehen bis zum 740 00:30:31,040 --> 00:30:32,500 Kategorien hier. 741 00:30:32,500 --> 00:30:34,840 Ich bin derzeit in der Kategorie Steuerung. 742 00:30:34,840 --> 00:30:37,630 Ich bin stattdessen hingehen bis zur Looks Kategorie und 743 00:30:37,630 --> 00:30:39,970 gibt es eine ganze Reihe von Dingen hier sagen, dass Sprich 744 00:30:39,970 --> 00:30:43,110 Denken, Farbe ändern, Switch Kostüm. 745 00:30:43,110 --> 00:30:44,860 >> So können Sie dumme Sachen mit Kostümen zu tun und 746 00:30:44,860 --> 00:30:45,870 Töne und dergleichen. 747 00:30:45,870 --> 00:30:49,970 Lassen Sie mich gehen Sie vor und nur sagen, Sag mal, und jetzt feststellen, wie ich ziehen 748 00:30:49,970 --> 00:30:52,940 Drop dieses Puzzleteil, es gehen zu wollen, zu verriegeln 749 00:30:52,940 --> 00:30:55,010 in die entsprechende Form hat. 750 00:30:55,010 --> 00:30:58,020 Also, wenn ich voran gehen und ließ meine Maus, sperren sie 751 00:30:58,020 --> 00:31:01,770 zusammen, und jetzt, wenn ich gehe rüber und klicken Sie auf die grüne Fahne, 752 00:31:01,770 --> 00:31:05,910 die Katze hat in der Tat sagen, hallo, weil das ist, was drin ist 753 00:31:05,910 --> 00:31:06,980 dieses weiße Feld. 754 00:31:06,980 --> 00:31:08,900 Wir werden bald sehen, dass diese weißen Kasten ist, was genannt 755 00:31:08,900 --> 00:31:10,250 Argument oder ein Parameter ist. 756 00:31:10,250 --> 00:31:12,560 Es ist eine Möglichkeit der Änderung des Verhaltens von, in diesem Fall, ein 757 00:31:12,560 --> 00:31:15,070 Puzzleteil, aber wenn ich will, genau zu sagen, was ich gesagt 758 00:31:15,070 --> 00:31:18,610 vor, sagen, hallo, Welt, kann ich jetzt gehen Sie zurück hierher, 759 00:31:18,610 --> 00:31:21,990 Klicken Sie auf Wiedergabe, und "Hallo Welt" ist, was die gesagt. 760 00:31:21,990 --> 00:31:24,340 >> So sind wir buchstäblich die Programmierung jetzt. 761 00:31:24,340 --> 00:31:27,540 Es ist gar nicht so überzeugend eines Programms, aber zumindest 762 00:31:27,540 --> 00:31:30,140 es ist ein wenig zwingender als etwas, das sieht 763 00:31:30,140 --> 00:31:31,300 den ersten Blick, wie diese. 764 00:31:31,300 --> 00:31:34,190 Und wir können sehr schnell umso expressive bekommen 765 00:31:34,190 --> 00:31:36,600 denn in Scratch, wie in anderen Sprachen, es gibt alle 766 00:31:36,600 --> 00:31:40,010 Arten von Aussagen, nicht einfach sagen oder Druck etwas, aber 767 00:31:40,010 --> 00:31:42,650 Sie können Dinge wie das Warten zu tun, wie wir sahen, nur mit 768 00:31:42,650 --> 00:31:44,240 das Cookie, eine gewisse Anzahl von Sekunden. 769 00:31:44,240 --> 00:31:46,440 Sie können Geräusche in der Umgebung von Scratch spielen nur 770 00:31:46,440 --> 00:31:49,050 wie kann man in einem normalen Computer-Programm play sound. 771 00:31:49,050 --> 00:31:52,440 Sie können prüfen, was sind boolesche Ausdrücke genannt. 772 00:31:52,440 --> 00:31:55,630 So, jetzt fangen wir an unsere Toolkit einige Begriffe hinzufügen 773 00:31:55,630 --> 00:31:58,840 dass tatsächlich bezieht sich auf das Beispiel, dass Joseph und ich habe 774 00:31:58,840 --> 00:32:00,080 hier mit den Socken. 775 00:32:00,080 --> 00:32:03,040 So Aussagen sind nur Aussagen über Tatsachen. 776 00:32:03,040 --> 00:32:04,160 Tun Sie dies. 777 00:32:04,160 --> 00:32:07,370 Eine Richtlinie für das Sprite oder mich der Mensch, etwas zu tun. 778 00:32:07,370 --> 00:32:10,420 Ein boolescher Ausdruck ist etwas, das einen Wert hat, ein 779 00:32:10,420 --> 00:32:14,580 sogenannte Wahrheitswert, die entweder eine Null oder Eins, falsche oder 780 00:32:14,580 --> 00:32:17,890 wahr, ein-oder ausschalten, nein oder ja. 781 00:32:17,890 --> 00:32:19,730 Spielt eigentlich keine Rolle, wie Sie dies zu denken, aber es ist ein 782 00:32:19,730 --> 00:32:20,700 binären Zustand. 783 00:32:20,700 --> 00:32:22,610 Als Nate diskutiert am Mittwoch im Video, zwei 784 00:32:22,610 --> 00:32:23,570 verschiedene Dinge. 785 00:32:23,570 --> 00:32:25,740 >> So in Scratch passieren boolesche Ausdrücke zu suchen 786 00:32:25,740 --> 00:32:28,910 wie diese blaue Objekte hier, und in diesem Fall ist die Frage 787 00:32:28,910 --> 00:32:30,960 mark bedeutet, dass Sie eine Frage zu stellen. 788 00:32:30,960 --> 00:32:34,250 Ist die Katze oder das Sprite, berühren Sie den Mauszeiger? 789 00:32:34,250 --> 00:32:36,580 So ist dies nur ein Beispiel für einen Scratch-Block, geht 790 00:32:36,580 --> 00:32:39,950 uns zu erlauben, ja oder nein zu überprüfen, ist die Maus berühren die 791 00:32:39,950 --> 00:32:40,790 Sprite auf dem Bildschirm? 792 00:32:40,790 --> 00:32:42,840 Und dies kann nützlich sein, wenn Sie wirklich wollen, Dinge zu tun 793 00:32:42,840 --> 00:32:43,820 mit der Maus. 794 00:32:43,820 --> 00:32:46,470 Neben Boolesche Ausdrücke haben wir die Dinge 795 00:32:46,470 --> 00:32:49,110 wie ist die Maus nach unten, so können Sie erkennen, dass die Art von 796 00:32:49,110 --> 00:32:50,200 Frage als gut. 797 00:32:50,200 --> 00:32:52,590 Wir können tun, Mathematik, wenn Sie wirklich wollen, und es gibt 798 00:32:52,590 --> 00:32:55,170 eigentlich mehr überzeugende Anwendungen für diese als nur ein reines 799 00:32:55,170 --> 00:32:56,400 Arithmetik, wie wir sehen werden. 800 00:32:56,400 --> 00:32:59,690 Pseudo Zufälligkeit und Ihre Programme scheinen zu denken, 801 00:32:59,690 --> 00:33:03,490 oder verhalten sich unterschiedlich auf einigen scheinbar zufälligen Werten, 802 00:33:03,490 --> 00:33:06,610 und dann haben wir Dinge wie Boolesche Ausdrücke wie AND. 803 00:33:06,610 --> 00:33:08,830 Also, wenn Sie wirklich wollen, um zwei Werte zu überprüfen, werden wir sehen, in 804 00:33:08,830 --> 00:33:11,110 Scratch, dass wir tatsächlich testen, ob dies 805 00:33:11,110 --> 00:33:13,190 wahr und das ist wahr. 806 00:33:13,190 --> 00:33:15,300 Zum Beispiel im Fall von meiner Socken, konnte ich an der habe 807 00:33:15,300 --> 00:33:19,045 ganz am Ende die Frage gestellt, ob linke Socke ist und rechten Socke 808 00:33:19,045 --> 00:33:20,610 auf, aufzuhören. 809 00:33:20,610 --> 00:33:22,710 Sie alle sind für den Tag fertig, so das wäre ein zu 810 00:33:22,710 --> 00:33:24,300 Gelegenheit. 811 00:33:24,300 --> 00:33:27,740 >> Also lasst uns weitermachen und versuchen, einige dieser zusammenzusetzen 812 00:33:27,740 --> 00:33:31,570 und in ein paar Beispiele mehr gehen 813 00:33:31,570 --> 00:33:32,610 zwingender als diese. 814 00:33:32,610 --> 00:33:35,770 Also lass mich gehen Sie hier und eröffnen einige der Beispiele 815 00:33:35,770 --> 00:33:38,350 das wird immer auf den Kurs der Website als gut und 816 00:33:38,350 --> 00:33:39,870 eröffnen hello2. 817 00:33:39,870 --> 00:33:42,910 So in hello2 hier haben wir ein Programm, das tut ein paar ist 818 00:33:42,910 --> 00:33:46,290 Dinge, aber es macht es nicht so effektiv, wie wir könnten. 819 00:33:46,290 --> 00:33:48,900 Also hier heißt es "Hallo Welt" für eine Sekunde und dann wartet 820 00:33:48,900 --> 00:33:49,450 für eine Sekunde. 821 00:33:49,450 --> 00:33:51,720 Und dann tut es wieder, und dann tut es wieder. 822 00:33:51,720 --> 00:33:55,530 Also, wenn ich die grüne Fahne klicken, Scratch sagt: "Hallo, Welt. 823 00:33:55,530 --> 00:33:57,160 Hallo, Welt. 824 00:33:57,160 --> 00:34:00,080 Hallo, Welt. "Und das ist offensichtlich Kandidaten jetzt 825 00:34:00,080 --> 00:34:00,860 Verbesserung. 826 00:34:00,860 --> 00:34:03,070 >> Was ist der marginale Verbesserung, hoffentlich können wir 827 00:34:03,070 --> 00:34:07,610 jetzt machen, wenn Scratch unterstützt das Konzept? 828 00:34:07,610 --> 00:34:08,310 Irgendeine Art von Schleife. 829 00:34:08,310 --> 00:34:10,960 Irgendeine Art von Wiederholung, jetzt wäre es schön, so lassen Sie mich 830 00:34:10,960 --> 00:34:11,920 tatsächlich versuchen. 831 00:34:11,920 --> 00:34:13,870 Lassen Sie mich eigentlich gehen und bewegen diese. 832 00:34:13,870 --> 00:34:16,449 So Ankündigung können Blöcke so leicht lösen wie Sie hinzufügen können 833 00:34:16,449 --> 00:34:17,420 fixieren. 834 00:34:17,420 --> 00:34:20,730 Lassen Sie mich unter Kontrolle zu gehen, nach unten scrollen Sie hier, und zwar 835 00:34:20,730 --> 00:34:24,000 es ist das Puzzleteil hier wiederholen und immer und 836 00:34:24,000 --> 00:34:24,870 Immer If. 837 00:34:24,870 --> 00:34:28,500 So gibt es eine Reihe von Möglichkeiten zum Ausdruck Schleifenkonstrukte 838 00:34:28,500 --> 00:34:29,340 in Scratch. 839 00:34:29,340 --> 00:34:31,730 Der, den ich wahrscheinlich wollen hier nicht immer, weil ich nur 840 00:34:31,730 --> 00:34:34,639 wollen, dass dies drei Mal passieren, aber wahrscheinlich wiederholen. 841 00:34:34,639 --> 00:34:38,449 Also lass mich ziehen wiederholen hier, Drag & Drop, und 842 00:34:38,449 --> 00:34:42,530 Jetzt anstatt zu sagen "Hallo Welt" drei unterschiedlichen Zeiten, 843 00:34:42,530 --> 00:34:44,230 lass mich ziehen Sie diese Puzzleteil hier. 844 00:34:44,230 --> 00:34:46,610 Und obwohl es nicht zu passen scheint, ist das Programm Smart 845 00:34:46,610 --> 00:34:48,920 genug zu erkennen, es wird wachsen zu füllen, so ist es die 846 00:34:48,920 --> 00:34:51,270 Formen, die Materie und nicht die absolute Größe. 847 00:34:51,270 --> 00:34:54,030 Lassen Sie mich ändern die Wiederholung bis drei, und jetzt lass mich gehen 848 00:34:54,030 --> 00:34:56,560 vor und ziehen eine Sekunde warten dort als gut. 849 00:34:56,560 --> 00:34:59,220 Es wird in sowie einrasten, und jetzt werde ich ziehen 850 00:34:59,220 --> 00:35:01,370 diese Jungs hier und werfen sie einfach weg, weil ich 851 00:35:01,370 --> 00:35:02,710 brauchen sie nicht mehr. 852 00:35:02,710 --> 00:35:05,920 Lassen Sie mich Verkleinern und klicken Sie auf die grüne Fahne jetzt, und wir haben 853 00:35:05,920 --> 00:35:09,600 das gleiche Programm, aber, wie ich schon besser vorausgesagt 854 00:35:09,600 --> 00:35:12,200 entwickelt, weil Sie sich vorstellen können, wie schlimm dieses Programm 855 00:35:12,200 --> 00:35:14,410 würde sicherlich ästhetisch, wenn Sie hatten 856 00:35:14,410 --> 00:35:16,640 Start Kopieren und Einfügen, Kopieren und Einfügen oder 857 00:35:16,640 --> 00:35:20,020 Drag & Drop die gleichen darn Dinge wieder und wieder. 858 00:35:20,020 --> 00:35:22,260 >> Nun, einfach zu sagen, Sachen auf dem Bildschirm, Druck auf die 859 00:35:22,260 --> 00:35:25,350 Bildschirm, wirklich alles nicht so aufregend, so öffnen wir ein 860 00:35:25,350 --> 00:35:26,580 dritten Varianz hier. 861 00:35:26,580 --> 00:35:29,810 Und nun, wie Sie sehen werden, wird dies schnell nervig - 862 00:35:29,810 --> 00:35:30,850 [Meow] 863 00:35:30,850 --> 00:35:31,940 DAVID MALAN: - aber es ist auch irgendwie süß. 864 00:35:31,940 --> 00:35:35,244 [Meow] 865 00:35:35,244 --> 00:35:37,460 DAVID MALAN: Okay, so besser, und wir können sicherlich, dass 866 00:35:37,460 --> 00:35:41,060 gleichen Übergang von Chunking diese in eine Endlosschleife 867 00:35:41,060 --> 00:35:43,520 Struktur, aber wir machen es noch interessanter. 868 00:35:43,520 --> 00:35:47,480 >> Lassen Sie mich gehen Sie vor und eröffnen ein Viertel Varianz hier, wo ich 869 00:35:47,480 --> 00:35:50,020 nehmen die Dinge einen Schritt weiter. 870 00:35:50,020 --> 00:35:54,450 Also nach diesem dummen obwohl dies auf den ersten 871 00:35:54,450 --> 00:35:58,530 Blick ist, was dieses Programm tun? 872 00:35:58,530 --> 00:35:59,790 Es ist zu miauen gehen einmal. 873 00:35:59,790 --> 00:36:00,160 Warum? 874 00:36:00,160 --> 00:36:03,340 Nun, man ist, soweit ich weiß, immer weniger als zwei. 875 00:36:03,340 --> 00:36:04,890 Es gibt keinen Begriff der Zufälligkeit hier. 876 00:36:04,890 --> 00:36:07,240 Ich habe buchstäblich hartcodierte eins und zwei, aber dies ist eine 877 00:36:07,240 --> 00:36:10,370 Beispiel jetzt tatsächlich mit einem booleschen Ausdruck. 878 00:36:10,370 --> 00:36:13,650 Ähnlich wie wie Joseph in seinem Pseudocode, die Vertiefung IF 879 00:36:13,650 --> 00:36:17,170 Sie passenden Socken führen Sie dann die folgenden, hier haben wir 880 00:36:17,170 --> 00:36:19,750 ein Ausdruck, wenn man weniger als zwei THEN - 881 00:36:19,750 --> 00:36:21,820 und in der Tat haben wir sogar ein wenig Einzug, 882 00:36:21,820 --> 00:36:24,480 wo die lila ist leicht nach rechts eingerückt - 883 00:36:24,480 --> 00:36:26,600 Dann wirst du den Sound meow spielen. 884 00:36:26,600 --> 00:36:30,060 Nun wird in diesem Fall ist das eine stets kleiner als zwei ist, so dass diese 885 00:36:30,060 --> 00:36:31,970 ist eine Art Verschwendung von einer Bedingung. 886 00:36:31,970 --> 00:36:34,890 Aber wir werden in der Lage sein, wie wir sehen werden, auf andere Dinge stecken in 887 00:36:34,890 --> 00:36:37,420 diese Platzhalter, wo eins und zwei sind jetzt. 888 00:36:37,420 --> 00:36:41,340 So lasst uns nun beispielsweise fünf dieser Mehrere Advance 889 00:36:41,340 --> 00:36:45,850 hellos und schauen, was dieses Programm tun wird. 890 00:36:45,850 --> 00:36:48,710 >> So, jetzt in einem englischen Satz, wie funktioniert das 891 00:36:48,710 --> 00:36:51,460 zu verhalten? 892 00:36:51,460 --> 00:36:52,950 PUBLIKUM: Meows Hälfte der Zeit. 893 00:36:52,950 --> 00:36:55,380 DAVID MALAN: Meow der Hälfte der Zeit, so ist dies ein Weg, 894 00:36:55,380 --> 00:36:56,700 Fördern einer sehr einfachen Idee. 895 00:36:56,700 --> 00:36:59,400 Auch wenn wir gerade verwenden einige Ungleichheiten hier 896 00:36:59,400 --> 00:37:01,860 in einigen Zahlen, das ist wirklich nur eine programmatische 897 00:37:01,860 --> 00:37:09,490 Weise eine präzise Weise zu sagen, wenn die Münze kommt Köpfe, gehen 898 00:37:09,490 --> 00:37:10,270 voraus und meow. 899 00:37:10,270 --> 00:37:13,540 Oder umgekehrt, wenn die Münze kommt Schwänze, nicht meow. 900 00:37:13,540 --> 00:37:15,110 Und in diesem Fall, wie können wir ausdrücken, dass? 901 00:37:15,110 --> 00:37:17,950 Wir werden eine Zufallszahl von 1 bis 10 auswählen, und wenn das 902 00:37:17,950 --> 00:37:21,110 Zahl kleiner als 6, gehen Sie vor und meow. 903 00:37:21,110 --> 00:37:22,260 Und wie kam es hier reingekommen? 904 00:37:22,260 --> 00:37:24,620 Wieder gut, bemerken nur die Drag & Drop-und 905 00:37:24,620 --> 00:37:26,190 Dinge einrastet. 906 00:37:26,190 --> 00:37:28,020 >> So, jetzt lasst uns sehen, ob dies Zufall funktioniert. 907 00:37:28,020 --> 00:37:29,845 Lassen Sie mich gehen Sie vor und klicken Sie auf die grüne Flagge. 908 00:37:29,845 --> 00:37:31,120 [Meow] 909 00:37:31,120 --> 00:37:32,000 DAVID MALAN: Okay. 910 00:37:32,000 --> 00:37:33,430 [Meow] 911 00:37:33,430 --> 00:37:35,260 DAVID MALAN: Okay. 912 00:37:35,260 --> 00:37:38,510 Okay, gut, so dass wir Köpfe, Köpfe, Schwänze effektiv. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [Meow] 915 00:37:39,590 --> 00:37:41,829 DAVID MALAN: Heads. 916 00:37:41,829 --> 00:37:43,220 [Meow] 917 00:37:43,220 --> 00:37:44,040 DAVID MALAN: Excellent. 918 00:37:44,040 --> 00:37:46,220 Es ist immer peinlich, wenn nur statistisch Sie eine schlechte bekommen 919 00:37:46,220 --> 00:37:48,510 laufen, und es ist alle Köpfe, und das Programm eigentlich gar nicht 920 00:37:48,510 --> 00:37:49,230 arbeiten, wie Sie hoffen würden. 921 00:37:49,230 --> 00:37:51,210 Aber dieses Mal, es funktionierte, und wir scheinen zu haben, wenn wir es 922 00:37:51,210 --> 00:37:53,830 Dieses eine unendliche Anzahl von Malen, 50% Chancen. 923 00:37:53,830 --> 00:37:56,950 Jetzt wieder, nicht so interessant, nur machen Katzen 924 00:37:56,950 --> 00:37:59,840 meow, also lasst uns sehen, ob wir nicht ein bisschen weiter voranbringen kann 925 00:37:59,840 --> 00:38:01,820 Hier in der Version sechs. 926 00:38:01,820 --> 00:38:05,620 So, jetzt haben wir wirklich ärgerlich Version - 927 00:38:05,620 --> 00:38:08,215 [Miaut alle paar Sekunden] 928 00:38:08,215 --> 00:38:10,640 DAVID MALAN: - und das ist das, was bekannt ist, allgemein als 929 00:38:10,640 --> 00:38:11,670 Endlosschleife. 930 00:38:11,670 --> 00:38:14,190 >> So Endlosschleife in diesem Fall fühlt sich schlecht. 931 00:38:14,190 --> 00:38:16,970 Es ist definitiv zu starten klingen schlecht, und doch unendlich 932 00:38:16,970 --> 00:38:18,740 Schleifen sind nicht immer schlecht. 933 00:38:18,740 --> 00:38:20,910 Können Sie Zusammenhängen zu denken in der Computer-Programme, wo man möchte 934 00:38:20,910 --> 00:38:22,910 eigentlich wollen eine Endlosschleife? 935 00:38:22,910 --> 00:38:23,691 Yeah? 936 00:38:23,691 --> 00:38:26,520 PUBLIKUM: Wenn Sie eine Bedingung überprüfen möchten. 937 00:38:26,520 --> 00:38:28,240 DAVID MALAN: Okay, wenn Sie immer mal eine Bedingung wollen? 938 00:38:28,240 --> 00:38:29,190 Wie, was? 939 00:38:29,190 --> 00:38:30,440 PUBLIKUM: [unverständlich] 940 00:38:36,060 --> 00:38:38,170 DAVID MALAN: Okay, gut, also, wenn Sie irgendein Programm hatten, einige 941 00:38:38,170 --> 00:38:40,440 Art von Home Automation Sache, wo Sie wollen ständig 942 00:38:40,440 --> 00:38:41,980 Monitor ist etwas der Fall ist. 943 00:38:41,980 --> 00:38:42,850 Sind die Lichter an? 944 00:38:42,850 --> 00:38:45,020 Sind die Lichter an, weil Sie vielleicht einen Timer haben, und 945 00:38:45,020 --> 00:38:47,360 Sie wollen, dass sie gehen, müssen Sie etwas tun 946 00:38:47,360 --> 00:38:48,290 immer wieder. 947 00:38:48,290 --> 00:38:50,540 Und in der Tat, sprechen von Timern, die haben jemand von euch 948 00:38:50,540 --> 00:38:53,100 Uhren auf Ihrem Computer oder digitale Uhren, das ist eine 949 00:38:53,100 --> 00:38:54,210 Endlosschleife. 950 00:38:54,210 --> 00:38:56,980 Es geht um die Zeit zu aktualisieren, weil sie ständig ist 951 00:38:56,980 --> 00:38:59,750 Überprüfung und Kontrolle und Überprüfung weist der Zeit verändert, 952 00:38:59,750 --> 00:39:01,000 und wenn ja, oh, mein Gott. 953 00:39:03,670 --> 00:39:04,740 Die Uhr ist endlich geändert. 954 00:39:04,740 --> 00:39:07,020 Es muss angezeigt werden diesen Wert zu Ihnen. 955 00:39:07,020 --> 00:39:10,880 Während also die meiste Zeit Endlosschleifen sind ein Fehler, 956 00:39:10,880 --> 00:39:13,950 oder zumindest einem schlechten Design-Entscheidung, manchmal tun sie 957 00:39:13,950 --> 00:39:14,785 haben ihren Wert. 958 00:39:14,785 --> 00:39:18,170 >> Nun, lasst uns hier weiter voranzutreiben, um hello7. 959 00:39:18,170 --> 00:39:20,410 So, jetzt wird das Programm ein wenig mehr interaktiv. 960 00:39:20,410 --> 00:39:23,120 Lassen Sie mich hier zu vergrößern, und wieder ist es das, was ist schön 961 00:39:23,120 --> 00:39:23,640 über Scratch. 962 00:39:23,640 --> 00:39:26,760 Und wir werden es verwenden, um klare, Scratch, nur heute und in sein 963 00:39:26,760 --> 00:39:27,780 nächste Woche das Problem eingestellt. 964 00:39:27,780 --> 00:39:31,920 Aber am Montag haben wir in C. tauchen In diesem Programm hier, es tut, 965 00:39:31,920 --> 00:39:33,190 immer, die folgenden. 966 00:39:33,190 --> 00:39:35,890 IF Berühren Sie den Mauszeiger - jetzt, wer ist der 967 00:39:35,890 --> 00:39:36,420 Kontext hier? 968 00:39:36,420 --> 00:39:39,670 Tja, und beachten Sie, dass die hier unten ist unten gewählt 969 00:39:39,670 --> 00:39:43,060 rechts ist die Katze, Sprite ein, so dass diese Skripte, diese 970 00:39:43,060 --> 00:39:45,720 Programm, gilt für ihn spezifisch. 971 00:39:45,720 --> 00:39:48,950 Also, wenn die Katze berührt den Mauszeiger, dann wird es 972 00:39:48,950 --> 00:39:51,350 dies herunterzuspielen und zwei Sekunden warten, und 973 00:39:51,350 --> 00:39:53,030 wiederholen Sie dann bis zum Überdruss. 974 00:39:53,030 --> 00:39:55,360 >> Also lasst uns weitermachen und auf Play. 975 00:39:55,360 --> 00:39:57,580 Es passiert nichts, aber wenn ich zu streicheln die 976 00:39:57,580 --> 00:39:59,310 cat Jetzt kann ich einfach. 977 00:39:59,310 --> 00:40:01,130 [Meow] 978 00:40:01,130 --> 00:40:02,244 DAVID MALAN: Adorable. 979 00:40:02,244 --> 00:40:05,956 [Meow] 980 00:40:05,956 --> 00:40:08,750 DAVID MALAN: Okay, weniger störend, sondern bekommt auch langweilig, 981 00:40:08,750 --> 00:40:11,480 also lasst uns weitermachen und sehen, ob wir nicht spritzen 982 00:40:11,480 --> 00:40:12,460 ein wenig mehr Logik. 983 00:40:12,460 --> 00:40:14,300 Das war beispielsweise sieben. 984 00:40:14,300 --> 00:40:16,090 >> Hier im Beispiel acht, wir zu gehen 985 00:40:16,090 --> 00:40:18,670 Einführung eines ELSE Bedingung. 986 00:40:18,670 --> 00:40:21,440 So viel wie eine wörtliche Gabel in der Straße, in der man gehen kann 987 00:40:21,440 --> 00:40:24,260 links oder Sie können gehen, ein Zustand, in einer Programmiersprache 988 00:40:24,260 --> 00:40:28,120 Sprache wie Scratch, oder wie wir C zu sehen, ermöglichen es Ihnen, 989 00:40:28,120 --> 00:40:32,230 gehen in eine oder andere Richtung über eine ZF-ELSE konstruieren. 990 00:40:32,230 --> 00:40:35,160 So ganz wörtlich, wenn bei Berührung Mauszeiger diese 991 00:40:35,160 --> 00:40:38,680 wird einige Sound zu spielen, ELSE es geht um diese andere spielen 992 00:40:38,680 --> 00:40:39,800 Klang, meow. 993 00:40:39,800 --> 00:40:42,510 Nun, wenn Sie aus dem Namen dieser Klänge entnehmen kann, können Sie 994 00:40:42,510 --> 00:40:45,310 wahrscheinlich erraten, was dieses Programm gedacht ist zu zaubern 995 00:40:45,310 --> 00:40:46,250 die Idee. 996 00:40:46,250 --> 00:40:48,742 Diese Katze ist glücklich Miauen. 997 00:40:48,742 --> 00:40:49,230 [Meow] 998 00:40:49,230 --> 00:40:51,410 DAVID MALAN: Glücklich, aber nicht 999 00:40:51,410 --> 00:40:52,926 ganz gerne berührt werden. 1000 00:40:52,926 --> 00:40:54,550 [ROARS] 1001 00:40:54,550 --> 00:40:57,500 DAVID MALAN: So, jetzt haben wir eine Katze, die auf dich anschreien wird. 1002 00:40:57,500 --> 00:41:00,570 >> Alles klar, nun, ein letztes Beispiel mit Katzen hier, und 1003 00:41:00,570 --> 00:41:02,920 Lassen Sie uns offene Version neun dies hier. 1004 00:41:02,920 --> 00:41:06,190 So, jetzt haben wir die nächste nervigste Geräusch, das ich konnte 1005 00:41:06,190 --> 00:41:11,630 zu finden, so haben wir ein Walross oder Seelöwen hier, um sich geht 1006 00:41:11,630 --> 00:41:13,222 Gehen Sie folgendermaßen vor. 1007 00:41:13,222 --> 00:41:20,870 [SEAL BARK] 1008 00:41:20,870 --> 00:41:23,310 DAVID MALAN: Okay, so wird dies fort, bis Sie herausfinden, wie 1009 00:41:23,310 --> 00:41:24,640 dieses Programm funktioniert. 1010 00:41:24,640 --> 00:41:28,560 Also dieser Zeit hat dieses Tier zwei Skripte, und was ist 1011 00:41:28,560 --> 00:41:31,050 Interessant dabei ist, dass diese Skripte gehen zu führen 1012 00:41:31,050 --> 00:41:32,260 parallel. 1013 00:41:32,260 --> 00:41:35,340 So, weil sie beginnen beide mit einer grünen Flagge geklickt haben, 1014 00:41:35,340 --> 00:41:38,080 Es ist wie so, und beide Programme starten läuft es 1015 00:41:38,080 --> 00:41:41,370 einmal, auch wenn sie immer Looping. 1016 00:41:41,370 --> 00:41:44,420 So in der oberen script, ich habe eine gewisse Logik. 1017 00:41:44,420 --> 00:41:49,275 Welche Funktionen bietet, dass bieten dort oben? 1018 00:41:49,275 --> 00:41:50,740 [SEAL BARK] 1019 00:41:50,740 --> 00:41:51,670 PUBLIKUM: [unverständlich] 1020 00:41:51,670 --> 00:41:53,295 DAVID MALAN: Wenn es was? 1021 00:41:53,295 --> 00:41:53,760 [SEAL BARK] 1022 00:41:53,760 --> 00:41:55,852 PUBLIKUM: Wenn stumm auf Null, es geht zu spielen halten die 1023 00:41:55,852 --> 00:41:58,410 klingen. [SEAL BARK] 1024 00:41:58,410 --> 00:41:58,940 DAVID MALAN: Okay, gut. 1025 00:41:58,940 --> 00:42:01,960 Also, wenn gedämpft, was auch immer das ist, diese orange Sache ist Null, 1026 00:42:01,960 --> 00:42:05,370 Dann spielen die Seelöwen Ton und denken: "Oh, 1027 00:42:05,370 --> 00:42:06,770 hallo, "für zwei Sekunden. 1028 00:42:06,770 --> 00:42:09,380 Nun, ich weiß nicht, was stumm geschaltet ist, aber Null zaubert die 1029 00:42:09,380 --> 00:42:11,230 Idee der falschen oder ausschalten. 1030 00:42:11,230 --> 00:42:14,490 Also, wenn stummgeschaltet falsch ist, also, wenn nicht ausgeschaltet ist, 1031 00:42:14,490 --> 00:42:15,660 weiter spielen den Sound. 1032 00:42:15,660 --> 00:42:17,350 Alles klar, na ja, wie wir deaktivieren Sie diese Sache? 1033 00:42:17,350 --> 00:42:19,310 >> Nun, lasst uns an der zweiten script dort unten schauen. 1034 00:42:19,310 --> 00:42:22,130 Das zweite Skript sagt gesetzt stumm auf Null. 1035 00:42:22,130 --> 00:42:25,180 Beachten Sie, es ist auch orange, so was Scratch tut, ist es Farben 1036 00:42:25,180 --> 00:42:27,400 Blöcke im gleichen Farbton, wenn es irgendwie 1037 00:42:27,400 --> 00:42:28,850 logisch verbunden. 1038 00:42:28,850 --> 00:42:32,850 So wie stumm up top Orange war, so ist stummgeschaltet hier unten 1039 00:42:32,850 --> 00:42:34,060 erwähnt in orange Block. 1040 00:42:34,060 --> 00:42:36,170 Aber dies ist ein Variablenzuweisungen, so genau wie in 1041 00:42:36,170 --> 00:42:39,170 Algebra, Sie haben x und y und z, in der Programmierung haben Sie 1042 00:42:39,170 --> 00:42:41,440 Variablen, aber sie sind in der Regel - 1043 00:42:41,440 --> 00:42:42,580 Lassen Sie uns einen Moment innehalten und Gestalt, wie 1044 00:42:42,580 --> 00:42:44,280 diese Bellen zu stoppen. 1045 00:42:44,280 --> 00:42:45,480 Wie mache ich das? 1046 00:42:45,480 --> 00:42:46,480 [SEAL BARK] 1047 00:42:46,480 --> 00:42:47,920 DAVID MALAN: Okay. 1048 00:42:47,920 --> 00:42:49,490 Es hat aufgehört. Okay. 1049 00:42:49,490 --> 00:42:52,230 >> So wie in der Algebra Sie Variablen x, y und z haben, aber in 1050 00:42:52,230 --> 00:42:55,260 Programmieren, mit Variablen wie x, y, und z im allgemeinen 1051 00:42:55,260 --> 00:42:57,330 verpönt, weil sie überhaupt nicht expressive sind. 1052 00:42:57,330 --> 00:43:00,070 Sie haben keine semantische Bedeutung überhaupt, so in den meisten 1053 00:43:00,070 --> 00:43:02,110 Programmiersprachen können Variablen haben die volle 1054 00:43:02,110 --> 00:43:05,270 ausgewachsenen Namen oder Wörter oder Phrasen, wie gedämpft, zu sagen 1055 00:43:05,270 --> 00:43:06,030 was sie tun. 1056 00:43:06,030 --> 00:43:09,380 Also das zweite Skript wurde auch immer zuhören, und sie sagte, 1057 00:43:09,380 --> 00:43:12,100 wenn der Schlüssel, die Taste auf der Tastatur Platz ist 1058 00:43:12,100 --> 00:43:13,370 gedrückt, Fragezeichen. 1059 00:43:13,370 --> 00:43:16,300 So gibt es eine Bedingung mit einem booleschen Ausdruck, ist 1060 00:43:16,300 --> 00:43:19,010 geht um eine Frage entweder wahrheitsgemäß oder falsch zu beantworten, 1061 00:43:19,010 --> 00:43:22,880 dann habe ich innerhalb es, wenn die Leertaste gedrückt und 1062 00:43:22,880 --> 00:43:28,020 IF stummgeschaltet ist Null gesetzt stummgeschaltet, um ein, ELSE gesetzt stumm auf Null. 1063 00:43:28,020 --> 00:43:30,510 Also das andere Gabel in der Straße, und bemerken, wie ich habe 1064 00:43:30,510 --> 00:43:33,500 verschachtelt die beiden IF-Bedingungen, ist eine Möglichkeit der Überprüfung wird die 1065 00:43:33,500 --> 00:43:36,610 Space Bar gepresst, denn wenn dem so ist, möchte ich entweder diese gehen 1066 00:43:36,610 --> 00:43:38,000 So oder so. 1067 00:43:38,000 --> 00:43:40,210 Und wie komme ich zu invertieren den Wert stummgeschaltet? 1068 00:43:40,210 --> 00:43:41,410 Ich habe zu überprüfen, ist es Null? 1069 00:43:41,410 --> 00:43:45,890 Wenn ja, machen es zu einem, sonst machen es Null daher wechseln 1070 00:43:45,890 --> 00:43:47,670 seinen zwei Zuständen. 1071 00:43:47,670 --> 00:43:50,030 >> Alles klar, also haben wir dann einige dieser grundlegenden 1072 00:43:50,030 --> 00:43:50,540 Konstrukte. 1073 00:43:50,540 --> 00:43:52,810 Wir haben boolesche Ausdrücke und zu realisieren, sind auch diese 1074 00:43:52,810 --> 00:43:54,050 nicht alles, was fremd ist. 1075 00:43:54,050 --> 00:43:56,730 In der Tat, hier ist eine schnelle Screenshot von Harvard Kurses CS50 1076 00:43:56,730 --> 00:43:59,740 Shopping-Tool und eine Website gibt, die Checkboxen hat 1077 00:43:59,740 --> 00:44:02,420 und Drop-downs haben wirklich die ganze Zeit, wurde mit 1078 00:44:02,420 --> 00:44:03,430 Boolesche Ausdrücke. 1079 00:44:03,430 --> 00:44:05,760 In diesem Fall hier, wenn Sie auf das Kontrollkästchen neben 1080 00:44:05,760 --> 00:44:08,620 Natürlich größer oder gleich 4,5, oder die gleiche neben 1081 00:44:08,620 --> 00:44:11,200 Fakultät, du bist die Angabe eines booleschen Ausdrucks. 1082 00:44:11,200 --> 00:44:14,780 Zeigen Sie mir Kursen, für die dieser Ausdruck wahr ist. 1083 00:44:14,780 --> 00:44:17,080 Oder rechts, nicht in Konflikt mit Kursen bin ich 1084 00:44:17,080 --> 00:44:20,440 einnehmen, wenn das aktiviert ist, dann ja, das Sie überprüfen möchten 1085 00:44:20,440 --> 00:44:22,890 dass diese Bedingung, was Sie wollen, es zu ignorieren. 1086 00:44:22,890 --> 00:44:25,170 So Boolesche Ausdrücke sind eine Art rundum, aber wenn 1087 00:44:25,170 --> 00:44:28,080 wir setzen sie unter Bedingungen, ob IF-Bedingungen, IF 1088 00:44:28,080 --> 00:44:30,480 Elses, oder wir können noch tiefer simulieren 1089 00:44:30,480 --> 00:44:32,830 Ebenen, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 so das ist eine Art von ternären Zustand. 1091 00:44:34,430 --> 00:44:36,920 Sie können diesen Weg gehen oder so oder so. 1092 00:44:36,920 --> 00:44:39,680 Wir halten nisten Unternehmungen in verschiedene Richtungen gehen. 1093 00:44:39,680 --> 00:44:41,800 >> So Scratch hat diese Loops, wie immer. 1094 00:44:41,800 --> 00:44:44,750 Es hat diese Funktionen wie Repeat 10, einige 1095 00:44:44,750 --> 00:44:46,260 endliche Anzahl von Malen. 1096 00:44:46,260 --> 00:44:49,040 Wir haben die Fähigkeit nun Variablen gesetzt, so in diesem Fall 1097 00:44:49,040 --> 00:44:51,810 Ich habe erklärt, zum Beispiel eine Variable namens Socken. 1098 00:44:51,810 --> 00:44:54,340 Ich habe mit 0 initialisiert, und das ist noch eine andere Richtung 1099 00:44:54,340 --> 00:44:56,940 konnten wir hier oben haben mit Joseph genommen, wobei ich vielleicht 1100 00:44:56,940 --> 00:45:00,150 nur verfolgen, wie viele Socken habe ich auf und beenden 1101 00:45:00,150 --> 00:45:03,490 das Programm, wenn dieser Variablen den Wert 2 ist. 1102 00:45:03,490 --> 00:45:05,660 Das wäre eine andere Art zu Art Verallgemeinerung sein, dass 1103 00:45:05,660 --> 00:45:08,820 Problem und etwas wieder und wieder. 1104 00:45:08,820 --> 00:45:12,080 Nun, lasst uns gehen Sie vor und führen nun ein paar neue Dinge. 1105 00:45:12,080 --> 00:45:14,100 So diejenigen von Ihnen mit vorheriger Programmierung Erfahrung wird 1106 00:45:14,100 --> 00:45:17,120 wissen, dass eine Menge von Sprachen Matrizen oder Vektoren oder 1107 00:45:17,120 --> 00:45:19,970 Listen, und in der Tat hat Scratch etwas wie dies auch. 1108 00:45:19,970 --> 00:45:22,510 Also lasst uns sehen, ob wir nicht die Dinge auf die nächste Ebene hier. 1109 00:45:22,510 --> 00:45:24,920 Wenn ich die Möglichkeit haben, jetzt, mit dieser Puzzleteile 1110 00:45:24,920 --> 00:45:29,080 etwas hinzufügen, wie ein Wort oder eine Zahl, zu einer Variablen, kann ich 1111 00:45:29,080 --> 00:45:30,550 beginnen, die Dinge zu sammeln. 1112 00:45:30,550 --> 00:45:33,630 Und das ist eigentlich ziemlich apropos für Dinge wie Spiele, 1113 00:45:33,630 --> 00:45:35,810 Rollenspiele, wo Sie sind irgendwie herumlaufen 1114 00:45:35,810 --> 00:45:38,600 einige Fantasy-Welt sammeln Dinge, Kommissionierung Dinge, 1115 00:45:38,600 --> 00:45:39,900 Punkte zu sammeln, oder dergleichen. 1116 00:45:39,900 --> 00:45:42,310 Vielleicht möchten Sie den Überblick über eine Art Bestandsaufnahme zu halten, und 1117 00:45:42,310 --> 00:45:45,180 ja, das ist, was eines unserer ehemaligen Studenten hier haben 1118 00:45:45,180 --> 00:45:47,750 etwas namens Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Also lass mich gehen Sie vor und öffnen diese Sache hier, und in 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, haben wir diese Welt bis an der Spitze. 1121 00:45:56,260 --> 00:45:58,820 Also lass mich gehen Sie vor und klicken Sie auf die grüne Flagge. 1122 00:45:58,820 --> 00:46:01,040 Unsere oben links ist eine Art Inventar. 1123 00:46:01,040 --> 00:46:04,110 Das ist in Scratch als das, was wir eine Reihe anrufen oder umgesetzt 1124 00:46:04,110 --> 00:46:06,890 eine Liste, und jetzt haben wir diese kleine Animation. 1125 00:46:06,890 --> 00:46:10,440 So wie wir früher begonnen mit diesem Cookie Liebesgeschichte, 1126 00:46:10,440 --> 00:46:13,320 und dann haben wir weiterentwickelt, um Katzen und Seelöwen, jetzt können wir über 1127 00:46:13,320 --> 00:46:15,100 Dinge, die noch mehr interaktiv sind. 1128 00:46:15,100 --> 00:46:18,250 Und diese kleine blaue Kerl, kann ich beginnen, um seinen bewegen 1129 00:46:18,250 --> 00:46:19,500 wenig hier zu Hause. 1130 00:46:19,500 --> 00:46:22,570 So wie er hat einen Ausgang hier unten sieht, so bin ich mit 1131 00:46:22,570 --> 00:46:25,260 die Pfeiltasten, oben, unten, links, rechts. 1132 00:46:25,260 --> 00:46:28,370 Und jetzt bin ich draußen, so lassen Sie das, was ich hier habe. 1133 00:46:28,370 --> 00:46:30,920 Sieht aus wie eine Orange, und zwar sobald ich den Touch- 1134 00:46:30,920 --> 00:46:33,110 orange, wird es in meinem Inventar plumpste. 1135 00:46:33,110 --> 00:46:35,640 Wenn ich hier rüber gehen zu den Kirschen, jetzt habe ich etwas 1136 00:46:35,640 --> 00:46:36,760 andere in meinem Inventar. 1137 00:46:36,760 --> 00:46:39,100 Und das ist alles schön und nett, aber darüber nachdenken, wie nun dieser 1138 00:46:39,100 --> 00:46:39,840 umgesetzt wird. 1139 00:46:39,840 --> 00:46:42,490 Nun, wir haben diese Vorstellung von einer Liste, und das ist offenbar ein 1140 00:46:42,490 --> 00:46:45,470 Puzzleteil, dass Sie gerade sagen, was Sie wollen hinzufügen, fügen Sie 1141 00:46:45,470 --> 00:46:46,950 orange, fügen Kirschen. 1142 00:46:46,950 --> 00:46:48,540 Nun ist, was diese kleinen blauen Kerl tut? 1143 00:46:48,540 --> 00:46:49,810 Nun, er ist ein Sprite. 1144 00:46:49,810 --> 00:46:52,190 Und vermutlich, die orange und die Kirschen - 1145 00:46:52,190 --> 00:46:54,140 sie selbst waren separate Sprites. 1146 00:46:54,140 --> 00:46:56,980 Und mit Bedingungen in boolesche Ausdrücke, die 1147 00:46:56,980 --> 00:47:00,530 Student war wahrscheinlich in der Lage zum Ausdruck zu bringen, wenn Blue Kerl ist 1148 00:47:00,530 --> 00:47:04,590 Berühren Kirschen fügen Sie dann die Wort Kirschen zu seinem 1149 00:47:04,590 --> 00:47:07,890 Inventar, und dann auch verstecken die Kirsche Sprite. 1150 00:47:07,890 --> 00:47:10,600 So unter der Haube, hat es wahrscheinlich noch eine Kirsche 1151 00:47:10,600 --> 00:47:11,350 Sprite gibt. 1152 00:47:11,350 --> 00:47:14,160 Wir haben es gerade gesagt, dass sich praktisch unsichtbar. 1153 00:47:14,160 --> 00:47:16,340 >> Nun, wenn ich zu Fuß über hier zu halten, können wir dies auch tun, 1154 00:47:16,340 --> 00:47:19,150 proximal Sache, wo ich hingehe und las das Schild. 1155 00:47:19,150 --> 00:47:23,170 Also, wenn blauen Kerl berühren Zeichen, können wir sagen Block 1156 00:47:23,170 --> 00:47:26,455 wie die Katze zu uns sprach in Worten, hallo, früher, "Got 1157 00:47:26,455 --> 00:47:26,880 etwas Obst? 1158 00:47:26,880 --> 00:47:29,290 Bringen Sie es zu den Früchten Ort. "Alles klar, so dass nun offenbar 1159 00:47:29,290 --> 00:47:30,550 Ich habe meine Richtungen. 1160 00:47:30,550 --> 00:47:33,050 Ich kann gehen hier auf die Frucht Platz, Linie mich auf 1161 00:47:33,050 --> 00:47:33,740 mit der Tür. 1162 00:47:33,740 --> 00:47:35,390 Nun, ich bin hier. 1163 00:47:35,390 --> 00:47:38,120 Ich kann gehen bis zu dem Mann an der Theke. 1164 00:47:38,120 --> 00:47:40,330 Er erkennt, dass ich ihm nahe bin, so dass es nicht sein müssen 1165 00:47:40,330 --> 00:47:46,780 ganz gleich berühren, und ich habe das Spiel gewonnen. 1166 00:47:46,780 --> 00:47:49,890 So, da haben wir Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> So können wir Dinge tun, noch fortschrittlichere als diese. 1168 00:47:52,200 --> 00:47:53,200 Wir können hinzufügen, Sounds. 1169 00:47:53,200 --> 00:47:54,610 Wir können hinzufügen, pseudo Zufälligkeit. 1170 00:47:54,610 --> 00:47:56,260 Wir können die Komplexität erhöhen. 1171 00:47:56,260 --> 00:47:58,490 Lassen Sie mich gehen Sie hier, und anstatt dies tun mir, 1172 00:47:58,490 --> 00:48:01,240 lassen Sie mich Ihnen eines der anspruchsvollen Einreichungen 1173 00:48:01,240 --> 00:48:06,640 wir haben im letzten Jahr von einer bestimmten Person namens Blake. 1174 00:48:06,640 --> 00:48:08,910 Können wir ein Freiwilliger, ist bequem, die auf 1175 00:48:08,910 --> 00:48:12,600 Kamera und ist für ein Spiel? 1176 00:48:12,600 --> 00:48:13,450 Wie wäre es genau dort? 1177 00:48:13,450 --> 00:48:15,380 Komm rauf. 1178 00:48:15,380 --> 00:48:19,680 Alles klar, so dass das Spiel, das Sie gerade unbewusst haben 1179 00:48:19,680 --> 00:48:20,780 freiwillig zu spielen - 1180 00:48:20,780 --> 00:48:25,910 [Applaus] 1181 00:48:25,910 --> 00:48:28,610 DAVID MALAN: - ist etwas von gestern aufgerufen 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Wie ist Ihr Name? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 DAVID MALAN: Redna? 1185 00:48:31,050 --> 00:48:32,530 RENDA: Es ist wie Brenda mit einem b. 1186 00:48:32,530 --> 00:48:33,190 DAVID MALAN: Okay, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Schön, Sie kennen zu lernen. 1189 00:48:34,580 --> 00:48:38,690 >> Also hier in "Frogger", und wenn wir die Lautstärke zu erhöhen nur 1190 00:48:38,690 --> 00:48:39,780 ein bisschen, bist du dieses kleine 1191 00:48:39,780 --> 00:48:41,010 grünen Frosch auf dem Boden. 1192 00:48:41,010 --> 00:48:43,940 Sie können links, rechts, oben und unten, und Ihr Ziel ist es, 1193 00:48:43,940 --> 00:48:46,510 Überqueren Sie die Straße, überqueren den Fluss, und berühren Sie die Seerosen 1194 00:48:46,510 --> 00:48:47,760 an der Spitze. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Eine weitere t - 1197 00:48:54,630 --> 00:48:56,400 wiederholen, alles klar? 1198 00:48:56,400 --> 00:48:58,890 Lasst hit Anschlag. 1199 00:48:58,890 --> 00:49:00,140 Niemand sah, dass. 1200 00:49:10,470 --> 00:49:12,930 [Applaus] 1201 00:49:17,023 --> 00:49:17,850 [Applaus] 1202 00:49:17,850 --> 00:49:19,341 DAVID MALAN: Yeah. 1203 00:49:19,341 --> 00:49:20,832 Sehr gut gemacht. 1204 00:49:20,832 --> 00:49:22,082 Ausgezeichnet, danke. 1205 00:49:27,300 --> 00:49:29,430 >> So dass es Frogger. Nun, da Sie wissen, was du hast 1206 00:49:29,430 --> 00:49:32,170 bekommen euch in, eine weitere Freiwillige für eine andere 1207 00:49:32,170 --> 00:49:34,910 Spiel von einem anderen Schüler vorgelegt. 1208 00:49:34,910 --> 00:49:35,560 Sie wollen komm up? 1209 00:49:35,560 --> 00:49:36,576 Wie ist dein Name? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 DAVID MALAN: Richard. 1212 00:49:37,420 --> 00:49:39,732 Alle Rechte, Richard, auf bis zu kommen. 1213 00:49:39,732 --> 00:49:42,187 [Applaus] 1214 00:49:45,140 --> 00:49:47,030 DAVID MALAN: Sie haben etwas, das werde klingen 1215 00:49:47,030 --> 00:49:54,180 vertraut bald, so sind hier Ihren Anweisungen. 1216 00:49:54,180 --> 00:49:56,580 So in einem Moment werden einige Puzzleteile gehen, um nach oben 1217 00:49:56,580 --> 00:49:58,150 vom Bildschirm, die entweder links schauen 1218 00:49:58,150 --> 00:49:59,450 oder rechts oben oder unten. 1219 00:49:59,450 --> 00:50:01,230 Sie gehen zu müssen, um die Pfeiltasten so getroffen 1220 00:50:01,230 --> 00:50:04,540 dass es entspricht jenen Puzzleteile Futter mit 1221 00:50:04,540 --> 00:50:05,720 die Platzhalter an der Spitze. 1222 00:50:05,720 --> 00:50:07,500 Also, wenn Sie einen Pfeil nach links, und es reiht sich mit der linken 1223 00:50:07,500 --> 00:50:09,260 Pfeil traf den Pfeil nach links. 1224 00:50:09,260 --> 00:50:10,866 Sie können beginnen. 1225 00:50:10,866 --> 00:50:13,674 [MUSIC - "Stronger" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 DAVID MALAN: All right, großen Applaus für Richard. 1227 00:51:23,470 --> 00:51:26,082 [Applaus] 1228 00:51:32,426 --> 00:51:33,720 DAVID MALAN: Sehr gut gemacht. 1229 00:51:33,720 --> 00:51:34,110 Danke. 1230 00:51:34,110 --> 00:51:37,104 [Applaus] 1231 00:51:41,600 --> 00:51:44,330 >> DAVID MALAN: So lustig und, scheinbar, eine Art 1232 00:51:44,330 --> 00:51:46,590 einschüchternd wie es sein könnte, um etwas so umsetzen 1233 00:51:46,590 --> 00:51:49,550 scheinbar anspruchsvoll wie diese erkennen, dass der Student 1234 00:51:49,550 --> 00:51:51,450 nicht festgelegt und schreiben Sie einfach das alles auf einmal. 1235 00:51:51,450 --> 00:51:54,200 Vielmehr können Sie brechen ein Problem scheinbar komplexe 1236 00:51:54,200 --> 00:51:56,840 da dies in viel kleinere Stücke, und auch dies ist 1237 00:51:56,840 --> 00:51:57,560 wird ein Thema sein. 1238 00:51:57,560 --> 00:52:00,490 Das Schlimmste, was man in ein Programm schreiben, in fast jeder tun kann 1239 00:52:00,490 --> 00:52:03,480 Sprache ist, sich hinzusetzen, sich wirklich aufgeregt, schreiben die 1240 00:52:03,480 --> 00:52:07,200 ganze verdammte Ding, und dann nur hoffen, dass es durch die Arbeiten 1241 00:52:07,200 --> 00:52:08,510 Mal, wenn Sie fertig sind schriftlich. 1242 00:52:08,510 --> 00:52:10,920 Vielmehr sollte der Prozess der Programmierung in der Regel 1243 00:52:10,920 --> 00:52:13,440 sehr bewusste, sehr iterative, wobei Sie nur 1244 00:52:13,440 --> 00:52:16,955 gesetzt sehr kleinen Schritten für euch, mundgerechte Stücke 1245 00:52:16,955 --> 00:52:20,070 willst du abbeißen, und so, dass Sie diese Vernunft haben 1246 00:52:20,070 --> 00:52:21,740 Schecks, kleine Meilensteine, die Sie treffen können. 1247 00:52:21,740 --> 00:52:24,170 Und dann hast du zu jenen zu bauen, um mehr zu schaffen 1248 00:52:24,170 --> 00:52:25,400 anspruchsvolle Dinge still. 1249 00:52:25,400 --> 00:52:26,820 >> So zum Beispiel, wie könnten wir gehen über 1250 00:52:26,820 --> 00:52:28,380 Umsetzung ein Spiel wie dieses? 1251 00:52:28,380 --> 00:52:30,160 Nun, ehrlich gesagt, würde ich sicherlich von nur starten 1252 00:52:30,160 --> 00:52:32,260 Stützen eines Schlüssels zu einem Zeitpunkt. 1253 00:52:32,260 --> 00:52:34,840 Lasst uns einfach implementieren die Unterstützung für den Pfeil nach links. 1254 00:52:34,840 --> 00:52:37,610 So dass die Schüler mussten irgendwie in Photoshop zu erstellen, oder in 1255 00:52:37,610 --> 00:52:40,340 Scratch selbst mit den kleinen grafischen Editor ein 1256 00:52:40,340 --> 00:52:42,680 Pfeiltaste, die wie ein oben sieht dort gelassen, nur 1257 00:52:42,680 --> 00:52:43,910 die graue Platzhalter. 1258 00:52:43,910 --> 00:52:46,610 Dann wird der Student hatte um herauszufinden, was x, y zu koordinieren 1259 00:52:46,610 --> 00:52:48,380 es ausdrückte, wo sie in das Fenster gestellt. 1260 00:52:48,380 --> 00:52:50,730 0, 0 ist hier oben, so müssen Sie herausfinden, die Anzahl der 1261 00:52:50,730 --> 00:52:53,690 Pixel oder Punkte, zu kompensieren, dass Pfeil aus 1262 00:52:53,690 --> 00:52:54,800 die oben auf dem Bildschirm. 1263 00:52:54,800 --> 00:52:57,040 Und dann noch einmal, das ist an Ort und Stelle Ihr Programm nicht wirklich 1264 00:52:57,040 --> 00:53:00,380 alles tun, noch, so müssen Sie dann ein zweites Sprite, für 1265 00:53:00,380 --> 00:53:04,470 So ein grüner Pfeil, der dabei auch auf noch übrig, und Sie 1266 00:53:04,470 --> 00:53:06,710 Anschließend müssen Sie mit dem Schreiben beginnen einige Skripte für sie. 1267 00:53:06,710 --> 00:53:09,310 >> Und Sie bemerken vielleicht, dass diese Dinge begannen am kommenden 1268 00:53:09,310 --> 00:53:11,470 verschiedenen Geschwindigkeiten, und die Farben waren in verschiedenen 1269 00:53:11,470 --> 00:53:13,750 Standorte, und das ist, weil die Studenten verwendet ein bisschen 1270 00:53:13,750 --> 00:53:14,990 Pseudo Zufälligkeit. 1271 00:53:14,990 --> 00:53:17,440 Und durch pseudo Zufälligkeit, ich meine nur abholen eine Reihe 1272 00:53:17,440 --> 00:53:20,230 zwischen etwas und etwas, weil du kannst 1273 00:53:20,230 --> 00:53:22,890 beginnen map Dinge, wie wenn die Zahl zwischen eins und 1274 00:53:22,890 --> 00:53:24,940 fünf, gut, machen wir die Sache grün. 1275 00:53:24,940 --> 00:53:28,290 Wenn es zwischen 6 und 10 ist, machen wir das Puzzleteil 1276 00:53:28,290 --> 00:53:29,730 rot statt. 1277 00:53:29,730 --> 00:53:31,840 Solange Sie haben einen Weg zur Erzeugung irgendeine Art von 1278 00:53:31,840 --> 00:53:34,730 Zufälligkeit, können Sie dann entscheiden auf der Grundlage dieser 1279 00:53:34,730 --> 00:53:35,260 Zufälligkeit. 1280 00:53:35,260 --> 00:53:37,490 Und ich sage immer Pseudozufallszahlen, weil es eine 1281 00:53:37,490 --> 00:53:38,390 kleine schmutzige Geheimnis. 1282 00:53:38,390 --> 00:53:41,130 Computer kann nicht kommen mit Zufallszahlen. 1283 00:53:41,130 --> 00:53:42,800 Sie können nur das tun, was ihnen gesagt wird, weil 1284 00:53:42,800 --> 00:53:44,110 sie sind vom Menschen verursachten Geräte. 1285 00:53:44,110 --> 00:53:45,880 Sie können nicht einfach erraten, eine Zahl wie wir Menschen 1286 00:53:45,880 --> 00:53:46,960 fühle mich wie wir können. 1287 00:53:46,960 --> 00:53:50,970 Ein Computer hat etwas mathematischer zu zaubern das tun, 1288 00:53:50,970 --> 00:53:53,970 Illusion mathematische Zahl, manchmal mit Hilfe der 1289 00:53:53,970 --> 00:53:57,420 aktuellen Tag Zeit als eine Eingabe an herauszufinden, was 1290 00:53:57,420 --> 00:53:59,570 Zahl zurück, sondern mehr auf, dass eine andere Zeit. 1291 00:53:59,570 --> 00:54:02,060 Denn jetzt weiß nur, dass wir pseudo Zufälligkeit zu erzeugen. 1292 00:54:02,060 --> 00:54:04,610 >> Also, wenn ich die Fähigkeit für den linken Pfeil, um zu starten 1293 00:54:04,610 --> 00:54:07,990 erscheinenden zu unterschiedlichen Zeiten und mit unterschiedlichen Geschwindigkeiten, dann 1294 00:54:07,990 --> 00:54:10,230 Ich kann gehen Sie zurück und fügen Sie einige dieser IF-Bedingungen. 1295 00:54:10,230 --> 00:54:14,950 IF dieses Sprite berührt die andere, und die linke Pfeiltaste 1296 00:54:14,950 --> 00:54:16,330 Taste gedrückt wurde - 1297 00:54:16,330 --> 00:54:17,900 so drei Bedingungen in diesem Fall. 1298 00:54:17,900 --> 00:54:20,750 Ich kann, dass und Block vielleicht in diesem Fall - 1299 00:54:20,750 --> 00:54:23,210 Dann will ich voran gehen und erhöhen die Punktzahl. 1300 00:54:23,210 --> 00:54:25,130 Und an der Spitze, haben wir eine Punktzahl, wir haben Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, Gut, und Boo. 1302 00:54:26,510 --> 00:54:29,810 Es gibt also offenbar fünf Variablen, dass dieser Schüler 1303 00:54:29,810 --> 00:54:32,220 verwendet werden, um den Überblick über diese verschiedenen Metriken zu halten. 1304 00:54:32,220 --> 00:54:34,180 Also kurz gesagt, ist das Ergebnis erstaunlich. 1305 00:54:34,180 --> 00:54:37,320 Es macht Spaß, es macht Spaß zu spielen ist, ist es einnehmend, aber dies ist nicht 1306 00:54:37,320 --> 00:54:38,380 wo der Student begann. 1307 00:54:38,380 --> 00:54:42,210 Er oder sie begann auf einem viel kleineren Satz von Schritten. 1308 00:54:42,210 --> 00:54:44,470 >> Also, was sind einige andere Bausteine, die wir können 1309 00:54:44,470 --> 00:54:45,760 weben in diesen Programmen? 1310 00:54:45,760 --> 00:54:48,750 Nun, es ist das andere Konzept in den meisten Sprachen, 1311 00:54:48,750 --> 00:54:50,730 Scratch unter ihnen, bekannt als Themen an. 1312 00:54:50,730 --> 00:54:54,660 So kann ein Computer eigentlich nicht wirklich mehrere Dinge ein 1313 00:54:54,660 --> 00:54:56,730 Zeit, mindestens in der Regel nicht. 1314 00:54:56,730 --> 00:54:59,930 Vielmehr hat im allgemeinen ein Computer nur einer CPU und sogar 1315 00:54:59,930 --> 00:55:02,230 aber Computer sind super schnell und kann daher 1316 00:55:02,230 --> 00:55:04,740 die Illusion dabei mehrere Dinge auf einmal - 1317 00:55:04,740 --> 00:55:06,180 Überprüfung Ihrer Mail bekommen eine sofortige 1318 00:55:06,180 --> 00:55:07,770 Nachricht, Drucken eines Dokuments - 1319 00:55:07,770 --> 00:55:11,530 wirklich, ist ein Computer nur Springen vom Druck bis IMing 1320 00:55:11,530 --> 00:55:15,160 um emailing hin und zurück und vor und zurück so schnell, daß man 1321 00:55:15,160 --> 00:55:18,170 langsame schlagfertig Menschen einfach nicht begreifen, dass es eigentlich 1322 00:55:18,170 --> 00:55:21,240 laufen diese Programme ein wenig in einer Zeit. 1323 00:55:21,240 --> 00:55:23,960 Jetzt liegen diese ein wenig von einem weißen diesen Tagen, da heutzutage 1324 00:55:23,960 --> 00:55:26,740 viele unserer Computer sind so genannte Multi-Core, so dass Sie 1325 00:55:26,740 --> 00:55:29,760 haben eine CPU, sondern mehrere Kerne, welche Art von ist wie 1326 00:55:29,760 --> 00:55:31,760 mit mehreren CPUs. 1327 00:55:31,760 --> 00:55:35,020 >> Und so manchmal können Computer wirklich tun mehrere Dinge 1328 00:55:35,020 --> 00:55:38,500 zu einer Zeit, aber im Allgemeinen innerhalb eines Programms, Programme 1329 00:55:38,500 --> 00:55:40,200 verlassen sich auf diese Dinge genannt Fäden. 1330 00:55:40,200 --> 00:55:43,160 So ein Thread ist wie eine Art Miniatur-Programm, das können 1331 00:55:43,160 --> 00:55:46,540 existieren neben anderen Miniatur-Programm und laufen kann 1332 00:55:46,540 --> 00:55:51,250 parallel oder zumindest die Illusion, dass laufen 1333 00:55:51,250 --> 00:55:52,990 sie gleichzeitig laufen. 1334 00:55:52,990 --> 00:55:55,060 So Scratch unterstützt diese Dinge genannt Fäden. 1335 00:55:55,060 --> 00:55:57,580 Sie können mehrere Script ausführt auf einmal, so wie wir 1336 00:55:57,580 --> 00:56:00,220 hat mit dem Seelöwen, und dies ermöglicht es uns, tatsächlich 1337 00:56:00,220 --> 00:56:03,620 dann Wechselwirkungen zwischen diesen Sprites. 1338 00:56:03,620 --> 00:56:09,910 Lassen Sie mich gehen Sie hier und ziehen Sie, sagen wir, Threads und 1339 00:56:09,910 --> 00:56:11,870 spielen diese wie folgt. 1340 00:56:11,870 --> 00:56:13,950 Wir haben zwei Sprites, von denen jeder sehen wir 1341 00:56:13,950 --> 00:56:15,720 hat nur ein Skript. 1342 00:56:15,720 --> 00:56:18,000 Und Sie bemerken, scheint es eine Intelligenz in der sein 1343 00:56:18,000 --> 00:56:21,335 Katze in diesem ein, weil er immer kommt näher - 1344 00:56:21,335 --> 00:56:21,730 [ROARS] 1345 00:56:21,730 --> 00:56:24,540 DAVID MALAN: - und näher an den kleinen Vogel. 1346 00:56:24,540 --> 00:56:26,570 >> Also, wie ist der Vogel Betriebssystem? 1347 00:56:26,570 --> 00:56:28,200 Nun, lassen Sie uns einen Blick auf den Vogel zuerst. 1348 00:56:28,200 --> 00:56:31,220 Der Vogel script sagte, wenn die grüne Flagge angeklickt wird, gehen zu x 1349 00:56:31,220 --> 00:56:34,020 gleich negativen 115 und y gleich 150. 1350 00:56:34,020 --> 00:56:37,010 Also habe ich gerade herausgefunden, einen beliebigen Ort, wo ich wollte, dass die 1351 00:56:37,010 --> 00:56:39,580 Vogel zu starten, und ich plumpste ihn dort standardmäßig aktiviert. 1352 00:56:39,580 --> 00:56:42,800 Dann immer, wenn nicht berühren Katze, so ist dies eine andere 1353 00:56:42,800 --> 00:56:45,080 Art von looping Konstrukt, aber dieselbe Idee, tun dies immer 1354 00:56:45,080 --> 00:56:45,780 immer wieder. 1355 00:56:45,780 --> 00:56:49,410 Solange Sie nicht berühren die Katze, bewegen drei Schritte, und 1356 00:56:49,410 --> 00:56:51,680 Wenn Sie auf den Rand, bounce, sind, wo es eine Art 1357 00:56:51,680 --> 00:56:53,320 Reflexion im Billardzimmer Sinn. 1358 00:56:53,320 --> 00:56:56,140 Also das ist, wie der Vogel ist um Art bewegter 1359 00:56:56,140 --> 00:56:58,890 scheinbar zufällig, aber es ist nur, weil es Prellen ist deaktiviert 1360 00:56:58,890 --> 00:57:00,170 die Wände in diesem Fall. 1361 00:57:00,170 --> 00:57:03,170 >> Nun ist die Katze, inzwischen ist eine Art von Betrug. 1362 00:57:03,170 --> 00:57:05,520 Die Katze, wenn die grüne Flagge angeklickt wird, ja, beginnt in 1363 00:57:05,520 --> 00:57:07,390 einige Lage, eine zufällige Lage - 1364 00:57:07,390 --> 00:57:09,590 zumindest teilweise nach dem Pick 1365 00:57:09,590 --> 00:57:11,430 Random grünen Block dort - 1366 00:57:11,430 --> 00:57:14,660 und dann immer, wenn Berühren der Vogel, spielen die Löwen Sound, 1367 00:57:14,660 --> 00:57:15,790 und dann aufhören Skript. 1368 00:57:15,790 --> 00:57:18,560 Also, wenn ich sagte zu kündigen oder zu beenden, bevor es ist ein Rätsel 1369 00:57:18,560 --> 00:57:20,600 Stück in Scratch, die nur töten das Programm an, dass 1370 00:57:20,600 --> 00:57:22,900 darauf, weil es irgendwie logisch getan ist. 1371 00:57:22,900 --> 00:57:25,030 Aber sonst, hier bemerken, was passieren wird. 1372 00:57:25,030 --> 00:57:28,470 Weisen auf den Vogel und bewegen einen Schritt. 1373 00:57:28,470 --> 00:57:31,390 So dieser Punkt in Richtung Vogel ist Art von Vorteil die Katze 1374 00:57:31,390 --> 00:57:34,640 hat, dass es Homing in auf dem sich bewegenden Vogel, und wir können 1375 00:57:34,640 --> 00:57:37,370 Jetzt machen das Programm umso interessanter. 1376 00:57:37,370 --> 00:57:41,520 Anstelle des Bewegens einen Schritt zu einer Zeit pro Zyklus der CPU, pro 1377 00:57:41,520 --> 00:57:44,280 Streikrecht Maut von der Glocke, so zu sprechen, lassen Sie mich gehen Sie vor und 1378 00:57:44,280 --> 00:57:47,350 bewegen, sagen wir, fünf Schritte zu einer Zeit als die Katze. 1379 00:57:47,350 --> 00:57:51,120 Klicken Sie auf Ausführen, und jetzt ist er wirklich findet ihn schnell. 1380 00:57:51,120 --> 00:57:55,620 Wenn wir das Doppelte weiter auf 10 Schritte, es irgendwie geht 1381 00:57:55,620 --> 00:57:56,370 das Richtige für ihn. 1382 00:57:56,370 --> 00:57:57,750 Nun können wir den Vogel, 1383 00:57:57,750 --> 00:57:59,540 vielleicht ein bisschen ein Vorteil. 1384 00:57:59,540 --> 00:58:02,370 Lasst uns den Vogel gehen und sagen, anstatt sich in drei Schritten, 1385 00:58:02,370 --> 00:58:07,140 lasst ihn bewegen 30 Stufen. 1386 00:58:07,140 --> 00:58:08,700 Aber er wurde am Ende gefangen. 1387 00:58:08,700 --> 00:58:10,430 >> Also hier haben wir zwei Threads. 1388 00:58:10,430 --> 00:58:13,230 Es ist in Scratch mit zwei Skripten und zwei inhaftierten 1389 00:58:13,230 --> 00:58:16,150 Sprites, aber die Idee in anderen Sprachen ist, dass man 1390 00:58:16,150 --> 00:58:19,220 schreiben, im wesentlichen, zu viele Programme wie dieses und haben 1391 00:58:19,220 --> 00:58:22,950 sie laufen wirklich oder imaginär, in parallel. 1392 00:58:22,950 --> 00:58:25,280 >> Jetzt gibt es auch dieses Konzept in der Programmierung bekannt als 1393 00:58:25,280 --> 00:58:28,010 Veranstaltungen, und dies ist etwas, das wir nicht in C werden sehen, die 1394 00:58:28,010 --> 00:58:30,500 Sprache als C bekannt Wir werden es in Richtung Semester Ende zu sehen 1395 00:58:30,500 --> 00:58:33,240 in Web-Programmierung, wenn wir einführen JavaScript und den 1396 00:58:33,240 --> 00:58:36,970 Begriff des Gebäudes Webseiten, die dynamisch sind und interagieren 1397 00:58:36,970 --> 00:58:37,710 mit den Nutzern. 1398 00:58:37,710 --> 00:58:40,430 Also in diesem Fall haben wir ein ganz einfaches Beispiel von zwei 1399 00:58:40,430 --> 00:58:43,860 Sprites, Junge und Mädchen, von denen jeder ihrer jeweiligen haben 1400 00:58:43,860 --> 00:58:48,040 Themen, aber irgendwie diese beiden sind miteinander kommunizieren durch 1401 00:58:48,040 --> 00:58:49,490 von etwas namens Veranstaltungen. 1402 00:58:49,490 --> 00:58:52,750 Also lass mich gehen Sie hier und vergrößern des Jungen Skript 1403 00:58:52,750 --> 00:58:54,050 das sieht wie folgt aus. 1404 00:58:54,050 --> 00:58:57,510 Wenn grüne Flagge angeklickt wird, immer wie folgt vor. 1405 00:58:57,510 --> 00:59:01,510 Wird die Taste Space, oder die Leertaste, gedrückt wird, sagen 1406 00:59:01,510 --> 00:59:03,900 Marco für zwei Sekunden, die rein ästhetischen auf die ist 1407 00:59:03,900 --> 00:59:06,860 Bildschirm, eine kleine Rede Blase, aber dann ausgestrahlt. 1408 00:59:06,860 --> 00:59:09,240 >> So Broadcast ist ein weiterer Scratch Stück, das ist 1409 00:59:09,240 --> 00:59:12,050 Vertreter einer Klasse von Funktionalität in der Programmierung 1410 00:59:12,050 --> 00:59:15,080 es erlaubt verschiedene Programme, verschiedene Themen, 1411 00:59:15,080 --> 00:59:17,120 um inter-kommunizieren, um irgendwie zu senden 1412 00:59:17,120 --> 00:59:18,520 Nachrichten, einem zum anderen. 1413 00:59:18,520 --> 00:59:21,930 Vorbei an ein Stück Papier in der Klasse ist eine Art des Low-Tech 1414 00:59:21,930 --> 00:59:22,700 Äquivalent. 1415 00:59:22,700 --> 00:59:24,300 So ausgestrahlt Veranstaltung. 1416 00:59:24,300 --> 00:59:26,210 Ich kann diese Nachricht, und das Wort Event 1417 00:59:26,210 --> 00:59:27,270 ist völlig willkürlich. 1418 00:59:27,270 --> 00:59:30,000 Scratch hat manchmal diese Dropdown-Menüs, so dass ich nur kam 1419 00:59:30,000 --> 00:59:33,230 mit einem zufälligen Wort wie Ereignis, weil jetzt, was der Junge macht 1420 00:59:33,230 --> 00:59:36,600 wenn ich drücken Sie die Taste ist er sendet dieses Ereignis. 1421 00:59:36,600 --> 00:59:39,270 Und wenn ich jetzt an das Mädchen-Skript, ist ihr script 1422 00:59:39,270 --> 00:59:42,690 super einfach, weil alles, was sie tun muss, um nicht handeln wird, wenn 1423 00:59:42,690 --> 00:59:44,100 die grüne Flagge angeklickt wird. 1424 00:59:44,100 --> 00:59:47,910 Sie ist zum Handeln ausgelegt, wenn sie zitieren, unquote erhält, 1425 00:59:47,910 --> 00:59:51,210 "Event", und an diesem Punkt, sie hören also für 1426 00:59:51,210 --> 00:59:52,960 die sogenannte Event immer wieder. 1427 00:59:52,960 --> 00:59:55,790 Sobald sie dieses Ereignis empfängt, sie wird zu schreien 1428 00:59:55,790 --> 00:59:57,680 Polo für zwei Sekunden. 1429 00:59:57,680 --> 01:00:01,090 >> Und so kann man vielleicht aus diesem genau das, was der folgern 1430 01:00:01,090 --> 01:00:03,190 nächste Ergebnis sein wird. 1431 01:00:03,190 --> 01:00:04,910 Lassen Sie mich auf die grüne Flagge. 1432 01:00:04,910 --> 01:00:06,610 Nichts passiert, weil ich zu dem, was tun? 1433 01:00:06,610 --> 01:00:07,310 PUBLIKUM: Leertaste. 1434 01:00:07,310 --> 01:00:08,630 DAVID MALAN: Space Bar. 1435 01:00:08,630 --> 01:00:11,990 Boy sagt Marco, sagt Mädchens Polo. 1436 01:00:11,990 --> 01:00:13,670 Aber das ist nicht schwer per se codiert. 1437 01:00:13,670 --> 01:00:16,740 Das ist die gegenseitige Kommunikation zwischen Skripten, so dass wir jetzt 1438 01:00:16,740 --> 01:00:19,240 haben die Fähigkeit, auch komplexere Programme, wo machen 1439 01:00:19,240 --> 01:00:22,830 diese beiden sind irgendwie miteinander kommunizieren. 1440 01:00:22,830 --> 01:00:25,260 >> Also in welche Richtung können wir das? 1441 01:00:25,260 --> 01:00:28,260 Nun, in Problem-Satz 0, wirklich, ist das Ziel, 1442 01:00:28,260 --> 01:00:29,830 Spaß haben mit Scratch. 1443 01:00:29,830 --> 01:00:32,440 Für die Hacker-Ausgabe, wirst du statt Spaß haben mit einem 1444 01:00:32,440 --> 01:00:35,850 anspruchsvolle Version von Scratch genannt BYOB, Build 1445 01:00:35,850 --> 01:00:38,040 Eigene Blocks, aber die Idee ist die gleiche. 1446 01:00:38,040 --> 01:00:38,780 Du wirst in der Lage sein - 1447 01:00:38,780 --> 01:00:39,710 Ja, das war Absicht. 1448 01:00:39,710 --> 01:00:42,450 Es kam aus Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB ist die Hacker-edition-Version, aber sowohl 1450 01:00:45,200 --> 01:00:48,180 Demographie, Standard Edition und Hacker-Ausgabe gleich, die 1451 01:00:48,180 --> 01:00:50,940 Ziel bei der Hand für die kommende Woche ist wirklich nur zum Tauchen 1452 01:00:50,940 --> 01:00:53,050 tief, sich die Hände schmutzig mit der Programmierung, und machen 1453 01:00:53,050 --> 01:00:55,240 etwas Interessantes, etwas machen interaktive machen 1454 01:00:55,240 --> 01:00:58,020 etwas Künstlerisches machen etwas Spaß tatsächlich 1455 01:00:58,020 --> 01:01:01,020 demonstrieren, so dass durch Ende der Woche werden Sie ein Projekt haben, 1456 01:01:01,020 --> 01:01:03,770 nicht nur für Ihre erste CS50 pset, aber Sie müssen ein 1457 01:01:03,770 --> 01:01:05,620 wenig etwas, dass Sie zeigen in Annenberg um 1458 01:01:05,620 --> 01:01:08,830 Freunde oder gar Familienmitglieder durch Hochladen auf MIT-Website. 1459 01:01:08,830 --> 01:01:11,760 Und so wie ich am Mittwoch sagte, erwarten wir, dass 90% der Klasse, 1460 01:01:11,760 --> 01:01:13,970 allgemein zu tun die Standard-Editionen. 1461 01:01:13,970 --> 01:01:16,660 Erkennen, dass es auch dieses Ventil für diejenigen von Ihnen, 1462 01:01:16,660 --> 01:01:18,990 sonst finden sich ein wenig mit den Grundlagen langweilen 1463 01:01:18,990 --> 01:01:21,650 und wirklich wollen, zu tauchen in und Handwerk eine Vision, die Sie bereits 1464 01:01:21,650 --> 01:01:25,380 haben mit vorheriger Hintergrund in diesem freundlicher 1465 01:01:25,380 --> 01:01:26,240 Umwelt. 1466 01:01:26,240 --> 01:01:29,030 >> Also lass mich ziehen ein anderes Beispiel, dass einer unserer ehemaligen 1467 01:01:29,030 --> 01:01:33,830 Studenten hier haben und erzählen ein wenig etwas über Song. 1468 01:01:33,830 --> 01:01:37,430 Dass ähnlich, wie dies spielt, wie Sie gehen, zu denken 1469 01:01:37,430 --> 01:01:40,520 Durchführung dieses Programms mit genau diese gleichen 1470 01:01:40,520 --> 01:01:44,180 Bausteine, ein wenig pseudo Zufälligkeit, und ein 1471 01:01:44,180 --> 01:01:46,010 wenig bekanntes Lied. 1472 01:01:46,010 --> 01:01:47,910 Wenn wir die Lautstärke zu erhöhen gerade ein wenig? 1473 01:01:47,910 --> 01:01:49,160 [MUSIC - "Es ist Raining Men" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> DAVID MALAN: Das ist es für CS50. 1475 01:03:03,930 --> 01:03:05,860 Wir werden Sie am Montag zu sehen. 1476 01:03:05,860 --> 01:03:21,152 [Applaus]