Navigation Menu

Skip to content
Lukas Lentner edited this page May 20, 2021 · 7 revisions

Cube Codes ist ein digitaler Rubik's Cube, intendiert zum Einsatz im Schulunterricht.

>> Live in Aktion erleben: ide.cube.codes <<

Community

Das Projekt wird als OpenSource Software (GPL) community-getrieben entwickelt. An der Entwicklung beteiligen sich u.A. folgende Institutionen:

  • Technischen Hochschule Rosenheim (Fakultät ANG, Prof. Dr. Michael Helbig, Prof. Dr. Viktor Sandor, Tim Philipp)
  • Universität Hamburg (Prof. Simon Lentner)
  • Städtischen Realschule für Mädchen Rosenheim (Wolfgang Lentner)

Initiiert wurde das Projekt von Lukas Lentner, Prof. Simon Lentner und Wolfgang Lentner.

Kontakt

Schulprojekt

Das parallele Pilotprojekt für den Schulunterricht findet sich unter: mint.lentner.net

Beschreibung

Das Programm ist in Javascript/Typescript geschrieben und läuft vollständig im Browser, es wird auf GitHub und AWS (Amazon Web Services) gehosted.

Zuallererst bietet es einen animierten Rubiks-Würfel, der mit der Maus in Perspektive bewegt werden kann. Es gibt Knöpfe für die Ausführung von Zügen, das Zurücksetzen auf den gelösten Würfen, das Mischen, auch das Mischen-durch-Zerlegen (wodurch i.d.R. die Lösbarkeit verloren geht, s.u.). Unten findet sich eine Historie der vergangenen Würfelzustände und -züge, in der zurückgesprungen werden kann, um Zugfolgen analysieren zu können.

Des weiteren gibt es rechts einen Programmiereditor, in dem in der nativen Sprache Javascript Zugriff auf alle Objekte und Funktionen besteht. Damit bietet sich im fortgeschrittenen Schuleinsatz mit Schwerpunkt Programmierung die Möglichkeit, Algorithmen und Analyse Tools zu programmieren. Außerdem ist die Entwicklung der Funktionen von der Verfügbarkeit von Knöpfen in der UI losgekoppelt. Es können dort auch eigene Funktionen definiert werden und sogar externe abgespeicherte Codeteile eingebunden werden. Damit können Bibliotheken von Funktionen oder zur Verschönerungen/Vereinfachung des Codes für den Schuleinsatz aufgebaut werden.

Der aktuelle Zustand (inkl. Historie und Code) kann als JSON exportiert werden, der dann entweder als 30 Tage gültiger Link z.B. per Email verschickt werden kann, oder in einem eigenen Webspace dauerhaft hinterlegt und zugänglich gemacht werden kann.

CubeCodes1

Beispiele

Eingeben von Zügen

Nutzung von verschiedenen Formaten zur Zugeingabe, vor allem als Text in der WCA Standard Notation. Damit kann im Schuleinsatz ein Lexikon von häufig auftretenden Zugfolgen und Strategien angelegt werden. Beispielsweise der folgende Zug zum lösen der dritten Ebene:

CubeCodes1

Nutzung größerer Würfel wie 4x4x4

CubeCodes1

Eingabe oder Ausgabe des Würfel-Zustands als Text

Durch die Eingabe von Würfelzuständen als Text können z.B. Beispiel-Situationen oder der Zustand eines realen physischen Würfels eingegeben werden.

CubeCodes1

Programmieren von Algorithmen

Im folgenden wurde ein vollständiger Lösungsalgorithmus mit verschiedenen Schritten im Programmiereditor implementiert. Diese Möglichkeiten eigenen sich zum fortgeschrittenen Schuleinsatz in einem Projekt zum Thema Programmierung.

CubeCodes1

Permutationen

In der mathematischen Behandlung des Rubik's Würfels werden Zustände als Permutationen und Drehzahlen codiert. Damit konnte z.B. geklärt werden, welche Würfelzustände durch Züge überhaupt lösbar sind (etwa wenn der Würfel zerlegt und falsch wieder zusammengebaut wurde). Diese Möglichkeiten eigenen sich zum fortgeschrittenen Schuleinsatz in einem Projekt zum Thema Permutationen.

CubeCodes1