google / google/codeworld

Math-editor mode

Abierto
#813 1 comentario 0 reacciones 0 asignados Ver en GitHub
discussion
Lenguaje dominante
Haskell
Estrellas
1.3k
Forks
201
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza revisando las integraciones existentes de Blocks mode y Haskell mode descritas en el issue, incluido cómo se convierten los bloques a Haskell y cómo se selecciona la UI del editor. La propuesta no menciona archivos ni pruebas, así que primero localiza esos puntos de entrada y aclara si el modo necesita un lenguaje basado en Haskell o un intérprete de JavaScript antes de definir los criterios de finalización.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
haskell, javascript
Área
compilers, frontend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.