Programmieren im Browser, mit echten Werkzeugen

Der Hackschule Workspace ist Visual Studio Code mit Linux-Terminal, Git, vielen Programmiersprachen und eigenen Datenbanken: die Werkzeuge, mit denen auch Software entwickelt wird. Installieren musst du nichts.

  • Deine Dateien bleiben gespeichert, in der Schule wie zu Hause.
  • Projekte und Labore führen dich in Grafik, Spiele, Netze und Datenbanken ein.
  • Probier ruhig aus: Mit Checkpoints kommst du jederzeit zu einem früheren Stand zurück.

Für Lehrkräfte und Schulleitungen: wie du mit deiner Klasse arbeitest, wer den Workspace betreibt und was mit den Daten geschieht. Welche Aktivität zu deinem Lehrplan passt, zeigt der Lehrplan.

Der Workspace: oben im Editor ein kurzes Programm, das nach dem Namen fragt, unten im Terminal sein Lauf: Hallo, Ada!

Katas

Kleine Programmieraufgaben direkt auf der Seite, in Ruby, Python oder JavaScript: ohne Terminal und Dateien, mit einem Knopf, der den Code ausführt und prüft. Eine Kata übt man, bis sie sitzt, wie in den Kampfkünsten; die Übungen bauen aufeinander auf, springen darfst du immer. Kleine Programmieraufgaben, die du direkt auf der Seite ausführst und prüfst.

Grafik

Erzeuge Bilder und Animationen mit selbst geschriebenem Code: aus Kurven und Kreisen, Pixel für Pixel aus Formeln, mit Strahlen durch eine Szene, als Shader auf dem Grafikchip oder räumlich für die 3D-Brille. Dabei beschäftigst du dich mit Pixeln, Farben, Koordinaten und Vektoren. Erzeuge Bilder und Animationen mit Code, von Kurven bis zur 3D-Brille.

Spiele & 3D-Welten

Programmiere Spiele und Welten, durch die du selbst läufst: ein Spiel auf einem kleinen Computer mit 64 KB, die Technik hinter Wolfenstein 3D und eine Welt aus Blöcken mit Tag und Nacht. Programmiere Spiele und Welten, durch die du selbst läufst.

Texte & Präsentationen

Computer können Texte nicht nur anzeigen, sondern auch strukturieren, gestalten und in interaktive Erlebnisse verwandeln. Erstelle Dokumente, Präsentationen und verzweigte Geschichten, in denen Leserinnen und Leser eigene Entscheidungen treffen können. Erstelle Dokumente, Präsentationen und Geschichten, in denen Lesende entscheiden.

Web

Baue Webseiten und Anwendungen, die im Browser laufen, und hol dir Daten von Diensten im Netz.

Künstliche Intelligenz

Wie lernt ein Programm aus Beispielen? Du baust ein winziges Sprachmodell, ein Neuron, das selbst lernt, und ein Programm, das nach den nächsten Nachbarn entscheidet, ohne Bibliotheken, Funktion für Funktion. Dabei siehst du, was diese Verfahren können, und was sie aus ihren Daten übernehmen. Baue Programme, die aus Beispielen lernen, Funktion für Funktion.

Bilder und Kompression

Daten kleiner machen, ohne etwas zu verlieren: Lauflängen, Huffman-Codes und LZW, jedes Verfahren selbst geschrieben. Danach Decoder in C für GIF und JPEG, die echte Bilddateien Byte für Byte lesen und zeigen, und Botschaften, die in den Pixeln eines Fotos verschwinden. Mach Daten kleiner und lies echte GIF- und JPEG-Dateien Byte für Byte.

Netze & Sicherheit

Wie Rechner über das Netz miteinander reden, vom Paket bis zur Webseite: TCP/IP, ein eigener Webserver, eine Pixelwand für die ganze Klasse. Und wie man Daten schützt, mit Verschlüsselung, Signaturen und einem zweiten Faktor bei der Anmeldung. Lerne, wie Rechner über das Netz reden und wie man Daten dabei schützt.

Datenbanken

Speichere, verknüpfe und durchsuche größere Datenmengen. Lerne SQL kennen, entwirf eine eigene Datenbank für Filme, speichere dieselben Daten anschließend als Graph und sieh, wie ein Programm Abfragen sicher stellt. Speichere, verknüpfe und durchsuche größere Datenmengen mit SQL.

Wie Computer rechnen

Ein Blick unter die Haube: aus Gattern einen Addierer und ein Rechenwerk bauen, in der Werkstatt eigene Schaltungen zusammenstecken und zu Bausteinen machen, und am Ende eine kleine CPU in Assembler und C programmieren. Vom einzelnen Gatter über eigene Schaltungen bis zur programmierbaren CPU.

Algorithmen und Datenstrukturen

Sortierverfahren und Datenstrukturen selbst bauen und Schritt für Schritt zusehen, was sie tun, und ein Routenplaner, der in echten Karten von Berlin den kürzesten Weg findet. Sortieren, Listen, Bäume und Heaps von innen, und der kürzeste Weg durch Berlin.

Automaten und Sprachen

Was Maschinen erkennen können und was nicht: endliche Automaten, reguläre Ausdrücke, Kellerautomaten und die Turingmaschine, dann Grammatiken und ein Rechner, der Ausdrücke versteht. Vom endlichen Automaten über reguläre Ausdrücke bis zu Grammatiken und Turingmaschinen.

Software entwerfen

Plane ein Programm, bevor du es schreibst: einen Algorithmus als Pseudocode und Struktogramm, ein größeres Programm als Klassendiagramm mit den Klassen, die es braucht. Dann programmierst du nach deinem Plan, allein oder mit der ganzen Klasse in einem gemeinsamen Git-Repository. Plane ein Programm, bevor du es schreibst, allein oder mit der ganzen Klasse.

Terminal & Git

Arbeite mit Dateien und Programmen im Terminal. Mit Git kannst du Änderungen an deinen Projekten nachvollziehen, frühere Stände wiederherstellen und gemeinsam mit anderen daran arbeiten. Und mit beidem einen Diebstahl aufklären. Arbeite mit Dateien, Programmen und Git im Terminal.

Programmiersprachen

Hier findest du kurze, praktische Einführungen in verschiedene Programmiersprachen. Du bekommst jeweils drei Beispiele für Programme gezeigt, die du direkt im Workspace ausprobieren kannst: ein einfaches »Hello, World!«, ein Programm, das eine Zahl einliest und in ihre Primfaktoren zerlegt, und ein Programm, das den Bubblesort-Algorithmus demonstriert. Finde deine Lieblingssprache! Probier viele Programmiersprachen mit je drei kurzen Beispielen aus.