JavaRush /Java-Blog /Random-DE /Zusätzliche Materialien für Vorlesungen CS50: Woche 0 (Vo...
Bender
Level 1
Маунтин-Вью

Zusätzliche Materialien für Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2)

Veröffentlicht in der Gruppe Random-DE
Wer noch nicht die Harvard-Vorlesungen über die Grundlagen des Programmierens gesehen hat, geht hier vorbei: https://javarush.com/quests/QUEST_HARVARD_CS50 =)

Einführung. CS50-Kursstruktur

Zusätzliche Materialien für Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) - 1Freunde! In der Einleitung erinnern wir Sie (oder sagen es Ihnen wem auch immer) an den Aufbau des CS50. Der Kurs dauert 12 Wochen. Jede Woche gibt es zwei Vorträge sowie allerlei Seminare und Erklärungen. Wir werden Artikel wie diesen veröffentlichen, sobald die Vorträge fertig sind. Es enthält eine Kurzbeschreibung der Vorlesungen, Hinweise zu „Shorts“ und Zusatzinformationen sowie Übersetzungen von Praxisaufgaben. Die Vorlesungen der Nullwoche behandelten folgende Themen:
  • Binäres Zahlensystem.
  • ASCII
  • Algorithmen und algorithmisches Denken
  • Compiler
  • Scratch-Sprache
  • Boolesche Ausdrücke
  • Bedingungen
  • Fahrräder
  • Variablen
  • Funktionen
  • Arrays
  • Streams
  • Veranstaltungen
Ziele der Woche 0:
  • Verstehen Sie, wie Informationen digital dargestellt werden können.
  • Lernen Sie grundlegende Softwarekonstrukte und -konzepte.
  • Erstellen Sie mit Scratch Ihre eigene Animation, Ihr eigenes Spiel oder Ihre eigene interaktive Aktivität.
  • Beeindrucke deine Freunde =).

CS50 Woche 0 (Vorlesung 1-2): Notizen

Algorithmen

Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 2Wir hoffen, Sie haben die Vorträge bereits gesehen und verstanden, dass der Algorithmus die Lösung von Problemen (verschiedene Probleme, mathematische Probleme oder „Wie komme ich zur U-Bahn-Station N“) in Schritte zerlegt. Darüber hinaus muss jeder Schritt in einer endlichen Zeitspanne abgeschlossen sein und es muss eine bestimmte Anzahl von Schritten selbst geben. Außerdem hängt der nächste Schritt vom vorherigen ab. Mehr zum Thema Algorithmen können Sie beispielsweise hier lesen . Wenn Sie Englisch können, finden Sie hier eine wunderbare TED-Animation von David Malan: https://youtu.be/6hfOvs8pY1k Obwohl die Informationen im Video im Allgemeinen die in der Vorlesung wiederholen =).

Binäres Zahlensystem

Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 3Wir haben 10 Finger und das System ist dezimal. Das heißt, wir können jede noch so große Zahl mit den Zahlen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 darstellen. Je nachdem, wo die Zahl in der Zahl steht, kann sie eine Bedeutung haben Verschiedene Dinge: Wenn diese Ziffer die letzte ist, dann steht sie an der Einerstelle, die vorletzte an der Zehnerstelle, noch weiter links steht an der Hunderterstelle und so weiter. Im Wesentlichen kann jede Zahl als Summe von Ziffern geschrieben werden, die jeweils mit zehn bis zu einer bestimmten Potenz multipliziert werden. Bei Einheiten - Null. Beispiel: 1573 = 3*10 0 + 7*10 1 +5*10 2 +1*10 3 . Die Zahl, mit der die Ziffern multipliziert werden, wird Basis des Zahlensystems genannt. Beim Dezimalsystem ist die Basis logischerweise zehn. Der Computer hat keine Finger, aber es gibt zwei Zustände: bedingt „Strom fließt“ und „Strom fließt nicht“, Null und Eins. Dementsprechend bestehen alle Zahlen (und Informationen im Allgemeinen) im Computerspeicher nur aus zwei Ziffern – 0 und 1. Ihre Position gibt, wie im Fall des Dezimalzahlensystems, die Ziffer an. Erst jetzt kann die Zahl in die Summe der Ziffern multipliziert nicht mit Zehnerpotenzen, sondern mit Zweierpotenzen zerlegt werden. 0 im Binärformat = 0 1 im Binärformat = 1 2 im Binärformat = 10 7 10 =111 2 Lernen Sie, vom Binärformat in das Dezimalformat umzuwandeln. Sie wissen wahrscheinlich bereits, wie das geht – wir nehmen einfach die Ziffer der Zahl, beginnend mit der Ziffer ganz rechts, multiplizieren sie mit der Basis hoch, die ihrer Ziffer entspricht, und addieren alles mit jeder Ziffer. Beispiel: Finden wir das dezimale Analogon der Binärzahl 101101 2 Die Eins ganz rechts = 1*2 0 Die nächste Null = 0*2 1 Die dritte Eins von rechts = 1*2 2 Die vierte Eins = 1*2 3 .. . und so weiter 101101 2 = 1*2 0 + 0*2 1 + 1*2 2 + 1*2 3 + 0*2 4 + 1*2 5 = 1 + 0 + 4 + 8 + 0 + 32 = 45 10 Stellen Sie sich acht Glühbirnen vor, die in einer Reihe angeordnet sind. Jeder von ihnen hat seinen eigenen Schalter. Jede der Glühbirnen ist eine Entladung. Was können Sie sich vorstellen, erinnern Sie sich an die allererste Vorlesung (da gibt es so ein Gerät) oder hier ist ein Widget für Sie: http://cdn.cs50.net/2016/x/psets/0/pset0/bulbs.html Spielen Üben Sie damit, das Binärsystem zu „fühlen“. Konvertieren von Dezimalzahl in Binärzahl. Auch hier ist alles ganz einfach, wenn man das Wesentliche versteht. Hier haben wir die Nummer 57 10 . Um es in das Binärsystem umzuwandeln, müssen Sie bestimmen, welche maximale Zweierpotenz diese Zahl nicht überschreitet. 2 6 = 64. Das ist eindeutig zu viel. Aber 2 5 = 32. Jetzt haben wir die höchstwertige Ziffer ermittelt. 32 10= 100000 2 . Jetzt suchen wir nach der nächsten Ziffer. 57-32 = 25. Nun suchen wir für 25 eine Zweierpotenz, die 25 nicht überschreitet. 2 4 = 16. Das bedeutet, dass unsere nächste Ziffer auch gleich 1 ist. 32+16 = 48 10 = 110000 2 . 57 – 48 = 9. 2 3 = 8, das ist kleiner als 9. Das bedeutet, dass die nächste Ziffer ebenfalls eine Eins sein wird. 32 + 16 + 8 = 56 10 = 111000 2 . 57-56 = 1, das heißt, es gibt nur noch eine Potenz, 2 0 . Also 57 10 = 111001 2 . Wenn plötzlich etwas unklar bleibt, können Sie im Wikibook mehr nachlesen, und wenn Sie gut Englisch können, finden Sie hier eine kleine Ergänzung zum Vortrag.

ASCII

Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 4Der Computer versteht nur Nullen und Einsen und sein Speicher kann, wie Sie oben gesehen haben, als eine sehr lange Reihe von Glühbirnen mit Schaltern dargestellt werden. Wir verstehen bereits, wie man Zahlen in einem Computer darstellt. Was ist mit den restlichen Informationen? Briefe, Bilder? Nehmen wir an, das englische Alphabet besteht aus 26 Buchstaben. Das heißt, theoretisch können wir Buchstaben nur im Binärsystem mit Zahlen von 0 bis 25 darstellen. Es stellt sich folgende Frage: Wie können wir verstehen, ob wir einen Kleinbuchstaben oder einen Großbuchstaben haben? Was ist mit Satzzeichen? Unsichtbare Zeichen wie Leerzeichen? Kurz gesagt, wir brauchen ein Kodierungssystem, Cap! In den 1960er Jahren gab es viele verschiedene Schemata zur Kodierung von Zeichen. Der Mangel an Einheitlichkeit erwies sich als Problem, und 1963 entwickelte und führte das American Standards Institute (ANSI) das ASCII-Kodierungsschema (American Standard Code for Information Interchange) ein. Jedes ASCII-Zeichen besteht aus sieben Bits, bzw. sieben Bits, von denen jedes den Wert 0 oder 1 annehmen kann. 7 Bits können binär Zahlen von 0 bis 127 enthalten, was bedeutet, dass wir 128 Zahlen zum Kodieren von Zeichen haben. Es scheint, dass dies ausreicht, um geschriebene englische Sprache zu kodieren? Zählen wir: az – 26 Optionen AZ – 26 weitere 0-9 – 10 ,;:~& und andere Satzzeichen – 32 Und noch ein Leerzeichen. Insgesamt - 95 Zeichen. Die restlichen 33 freien Optionen werden für sogenannte Steuerzeichen wie Zeilenvorschub oder Wagenrücklauf verwendet: https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg Es ist wichtig, zwischen zu unterscheiden Zeichen 0-9 und numerische Werte 0-9. Die Zeichen 0-9 werden durch die ASCII-Werte 48-57 dargestellt. Es ist interessant festzustellen, dass die vier Bits ganz rechts dieser ASCII-Werte binäre Darstellungen der numerischen Werte 0-9 sind. Dies vereinfacht die Konvertierung zwischen ASCII-Werten und ihren tatsächlichen numerischen Werten etwas. Beginnen wir mit dem Programmieren?

Kratzen

Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 5Also, Scratch. In der Vorlesung wurde Ihnen diese visuelle Programmiersprache und ihre Grundbefehle vorgestellt. Um Scratch selbst auszuprobieren, folgen Sie dem Link und klicken Sie auf „Beitreten“. Nach der Registrierung können Sie online mit der Programmierung beginnen. Ja, übrigens, Scratch ist heute teilweise russifiziert. Die Hilfe ist jedoch weiterhin auf Englisch. Wenn Sie möchten, können Sie den Code von Studentenprojekten, die in der Vorlesung demonstriert wurden, spielen und auch ansehen. Hier ist Pikachu-Gebäckfang . Oder ein Projekt mit dem Sortieren von Abfällen in verschiedene Behälter: https://scratch.mit.edu/projects/71161586/ David und das Unternehmen bitten Sie, sich keine Sorgen zu machen, wenn Sie der Meinung sind, dass Sie solch komplexe Projekte nicht durchführen können: Dieses Level erfordert bereits einige Fähigkeiten .

Übung

  1. Um die in Scratch ablaufenden Prozesse besser zu verstehen, können Sie den Quellcode für mehrere Projekte hier herunterladen . Spielen Sie herum und sehen Sie. Es ist sehr nützlich, den Code einer anderen Person zu lernen. Dies ist eine der besten Möglichkeiten herauszufinden, was in den Programmen steckt, zu denen Sie selbst noch nicht gereift sind. Sobald Sie verstehen, wie diese Anwendungen funktionieren, können Sie bedenkenlos weitermachen.

  2. Jetzt ist es an der Zeit, selbst etwas zu tun. Die Herausforderung besteht darin, Spaß zu haben und gleichzeitig ein kleines Projekt von Grund auf umzusetzen. Es kann eine Animation, ein Spiel oder eine interaktive Aktion sein.

Projektanforderungen:
  • Das Programm muss mindestens zwei Sprites (Zeichen, Bilder) enthalten und eines davon darf auf keinen Fall eine Katze sein =).
  • Es müssen mindestens drei Skripte (Aktionen) vorhanden sein.
  • Es müssen mindestens eine Bedingung, eine Schleife und eine Variable ausgeführt werden.
  • Mindestens ein Sound muss im Programm enthalten sein.
Das heißt, Ihr Projekt wird im Wesentlichen komplexer sein als die in der Vorlesung beschriebenen, aber einfacher als die gezeigten Spielzeuge über Pikachu und die Müllabfuhr. Ihr Projekt wird also wahrscheinlich mehrere Dutzend Rätsel verwenden, aus denen der Scratch-Code besteht. Wenn etwas nicht funktioniert, müssen Sie möglicherweise Ihren Ansatz zur Lösung des Problems ändern. Die Hauptsache ist, ohne Angst zu gehen! Wir laden Sie ein, Fragen zu stellen und Ihre Projekte in den Kommentaren zu teilen.

Scratch: eine kurze Anleitung zum Handeln

Das Sprite ist das zentrale Objekt des Projekts. Jeder Charakter – eine Katze, ein Flugzeug, ein Ball – ist ein Sprite. Wenn Sie zwei verschiedene Katzen hinzugefügt haben, handelt es sich um zwei verschiedene Sprites. Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 6Jedes Sprite verfügt über Skripte, die sein Verhalten beschreiben. Das sind Aktionsblöcke. Kostüme sind das Aussehen von Gegenständen. Die Sprites selbst sind im Wesentlichen nur Zeichnungen. Jedes Sprite kann mehrere Kostüme haben. Um ein Sprite zu erstellen, müssen Sie entweder sein Originalkostüm aus der Scratch-Bibliothek auswählen, Ihr eigenes im integrierten Editor zeichnen, ein beliebiges Bild hochladen oder sogar ein Foto mit Ihrer Webcam aufnehmen und es hochladen. Alle Sprites werden auf der sogenannten Bühne platziert. Die Bühne ist im Wesentlichen unsere Leinwand, der Rahmen für das Programm. Sie können einem Sprite oder einer Szene auch Sounds aus der Bibliothek hinzufügen oder sie laden oder selbst mit einem Mikrofon aufnehmen. Um mit der Ausführung des Programms zu beginnen, müssen Sie auf die grüne Flagge in der oberen rechten Ecke des Szenenfensters klicken. Bevor Sie dies tun, müssen Sie jedoch den folgenden Block im Programm platzieren: Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 7Und einige Blöcke daran anhängen, als ob es sich um ein Designerteil handeln würde. Beispiel: Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 8Wenn Sie in diesem Fall auf die Flagge klicken, macht das Sprite, dem die Aktionen zugeordnet sind, 50 Schritte und miaut. Wir haben viele Blöcke. Sie sind in drei Registerkarten unterteilt: Drehbücher, Kostüme und Sounds. Lassen Sie uns ein einfaches Programm mit einer Bedingung erstellen. Ist sie erfüllt, miaut die Katze, ist sie nicht erfüllt, schweigt sie. Betreiber werden grün angezeigt. Diejenigen, die testen, ob eine Bedingung wahr oder falsch ist, haben scharfe Ecken an den Seiten. Zustandsteststrukturen und -schleifen werden in Orange angezeigt. Sie haben spezielle Löcher, in denen Sie andere Blöcke platzieren können.

Fahrräder:

Unendlich oft wiederholen: Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 9Etwas so oft wiederholen: Zusätzliche Materialien für Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 10Eine Aktion wiederholen, wenn die Bedingung erfüllt ist: Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 11Sie können Variablen im Datenblock erstellen. Im folgenden Beispiel haben wir eine Variable x erstellt und sofort gab es Aktionen, die damit durchgeführt werden können. Sie können den Umfang der Variablen festlegen: für alle Sprites oder für eines. Zusätzliche Materialien für die Vorlesungen CS50: Woche 0 (Vorlesungen 1 und 2) – 12Die grüne Flagge ist nicht die einzige Aktion. Außerdem finden Sie im Abschnitt „Ereignisse“ eine Reihe weiterer Kontrollbedingungen. Sie können beispielsweise auswählen, was geschehen soll, wenn Sie mit der Maus auf eine Schaltfläche oder auf das Sprite selbst klicken. Sollten Sie weitere Informationen benötigen, finden Sie diese beispielsweise hier .

Was sonst

Wenn Ihr Internetzugang zu wünschen übrig lässt, empfehlen wir Ihnen, den Offline-Scratch-Editor unter https://scratch.mit.edu/scratch2download/ herunterzuladen . Vergessen Sie dann nicht, Ihr Projekt über Datei > Vom Computer hochladen an http://scratch.mit.edu/ einzureichen .
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION