google / google/codeworld

Math-editor mode

Ouverte
#813 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
discussion
Langage dominant
Haskell
Étoiles
1.3k
Forks
201
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les intégrations existantes de Blocks mode et Haskell mode décrites dans l’issue, notamment la manière dont les blocs sont convertis en Haskell et dont l’UI de l’éditeur est sélectionnée. La proposition ne mentionne aucun fichier ni aucun test ; commencez donc par cartographier ces points d’entrée et déterminez si le mode nécessite un langage basé sur Haskell ou un interpréteur JavaScript avant de définir les critères d’achèvement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
haskell, javascript
Domaine
compilers, frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.