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
Freunde! 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
- 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
Wir 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
Wir 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
Der 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
Also, 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
-
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.
-
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.
- 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.
GO TO FULL VERSION