研究課題/領域番号 |
15K01075
|
研究機関 | 香川大学 |
研究代表者 |
香川 考司 香川大学, 工学部, 准教授 (50284344)
|
研究期間 (年度) |
2015-04-01 – 2019-03-31
|
キーワード | e-ラーニング / Webアプリケーション / プログラミング |
研究実績の概要 |
プログラミング言語処理系やコンパイルされたプログラムをサーバー側で実行するための環境として、Docker (https://www.docker.com/) を利用するWebアプリケーションプログラムWappenLiteDockerを開発した。このシステムはdockerコマンド起動のオーバーヘッドを避けるため、Docker APIを利用しており、ファイルの送受信やWebSocketによる対話的なプログラムの実行にも対応している。 また、Webベースプログラミング学習環境をスマートデバイスに対応させるためのクライアント側のエディターとしてBlockly (https://developers.google.com/blockly/) を採用し、C言語や小さい画面に対応させるためのカスタム化されたブロックの開発を行った。 受講者が提出したソースプログラムに注釈するシステムとしてEclipse CDTのパーサーを利用するC-Helper (https://github.com/uchan-nos/c-helper) をWebベースに対応させ、さらにこれを元にして教師やTA (teaching assistant) がスマートデバイスからコメントを入力するためのシステムのプロトタイプを実装した。 さらにEmscripten (emscripten) やHaste (https://haste-lang.org/) などのJavaScript関連のツールを利用し、CPUスケジューリングアルゴリズムやポインター演算・再帰下降構文解析などの計算機科学のトピックスの可視化システムを開発した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
現時点では、コンパイルされたプログラムをサーバー側で安定して実行させるためのプログラムの無限ループ対策やタイムアウト対策はWappenLiteDockerに実装されていない。また悪意のある利用者に対するセキュリティー対策も十分ではない。
Blocklyは、カスタムブロックを用意するだけではなく、プログラムのソースコードからカスタムブロックを自動生成する機能が必要であり、実装に着手している。また、ブロック型のプログラミング環境はカスタムブロックを開発するだけでは画面の小さい端末で使いやすいとは言えず、UIにさらなる工夫が必要である。
教師やTAがコメントを入力するためのシステムのプロトタイプは、サーバー側で動作するEclipse CDTのパーサーの解析結果をブラウザー側に送っているが、その情報を使ったタブレットで有効な入力方法は未実装である。
|
今後の研究の推進方策 |
セキュリティー対策やタイムアウト対策を実装して、DockerやJava仮想機械を用いてプログラムをサーバー側で実行できる環境を実用レベルに引き上げる必要がある。
Blocklyを利用したシステムでは、これまで構文解析のための基盤としてEmscripten上のC言語 (+ Bison/Flex) を想定していた。しかし、構文木の処理にはHaskell言語で記述したプログラムをHasteを用いてJavaScriptに変換するほうが扱いやすいとわかってきたため、構文解析部をHaskellを用いて実装する。また教師・TA用コメント入力システムもサーバー側で動作するCDTパーサーをHasteで生成されたクライアント側で動作するパーサーに置き換えられないか検討する必要がある。
|
次年度使用額が生じた理由 |
国内旅費の回数が当初の予定より少なく、旅費の使用が予定より少なかった。海外旅費も予定より少ない金額で済んだ。 現時点では、平成27年度に購入したWindowsタブレットで動作テストを行っており、iOSタブレットやAndroidタブレットが必要な状況に至らなかったため購入を遅らせている。
|
次年度使用額の使用計画 |
iOSとAndroidタブレットを合わせて小さめの画面のスマートデバイスを平成29年度に購入する予定である。これらの数量によっては、ノートPCと同時に持ち運べてサーバーとして利用できるSmall Form Factor PCの購入を検討する。
|