google / google/codeworld

Math-editor mode

Offen
#813 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
discussion
Vorherrschende Sprache
Haskell
Sterne
1.3k
Forks
201
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

This proposal is to add a math-editor mode for CodeWorld. This would be a new mode that, instead of editing in a standard code editor, would integrate a WYSIWYG math editor into the UI.

Currently, there are three "modes" to CodeWorld.

1. Classic mode. This is the educational environment at http://code.world
2. Haskell mode. Located at http://code.world/haskell, this uses CodeMirror, but with a more standard Haskell UI.
3. Blocks mode. This replaces the code editor with a block-based version based on Blockly.

In this proposal, we'd add a fourth mode: http://code.world/algebra (not a real link) In this mode, instead of a coding editor based on CodeMirror, we'd offer an equation editor (like MathQuill or such, but possibly needing a lot of customization). This would require implementing a language based on the results of the math editor, possibly by converting via Haskell, similar to what we do now with blocks -- or possibly even by implementing an interpreter directly in JavaScript. (Obviously, that's no small undertaking, as it's essentially inventing a brand new language!)

The goal of doing this would be to take the underlying philosophy of CodeWorld even further, by allowing students to write in something even closer to mathematics.

This has some of the same limitations as blocks, in that if the implementation is by conversion to Haskell, then we'd either need to detect and prevent all possible errors at editing time (which is likely to be a leaky moving target), or somehow convert errors from Haskell back into the equation editor.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die in der Issue beschriebenen Integrationen von Blocks mode und Haskell mode zu überprüfen, einschließlich der Frage, wie Blöcke in Haskell umgewandelt werden und wie die Editor-UI ausgewählt wird. Der Vorschlag nennt keine Dateien oder Tests. Ordne daher zuerst diese Einstiegspunkte zu und kläre, ob der Modus eine Haskell-basierte Sprache oder einen JavaScript-Interpreter benötigt, bevor du Abschlusskriterien definierst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
haskell, javascript
Bereich
compilers, frontend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.