google / google/codeworld

Math-editor mode

オープン
#813 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
discussion
主要言語
Haskell
スター
1.3k
フォーク
201
PR マージ指標
30日以内にマージされた PR はありません

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、issue に記載されている既存の Blocks mode と Haskell mode の統合を確認します。これには、ブロックが Haskell に変換される方法と、エディター UI の選択方法が含まれます。提案ではファイルやテストが指定されていないため、まずそれらのエントリポイントを特定し、そのモードに Haskell ベースの言語と JavaScript インタープリターのどちらが必要なのかを明確にしてから、完了条件を定義します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
haskell, javascript
領域
compilers, frontend
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。