研究課題/領域番号 |
15K01075
|
研究機関 | 香川大学 |
研究代表者 |
香川 考司 香川大学, 工学部, 准教授 (50284344)
|
研究期間 (年度) |
2015-04-01 – 2019-03-31
|
キーワード | e-ラーニング / Webアプリケーション / プログラミング |
研究実績の概要 |
昨年度開発したWappenLiteDocker(Dockerを利用してプログラミング言語処理系やコンパイルされたプログラムを実行するためのWebアプリケーションプログラム)に、起動するイメージを指定したものに制限する・WappenLiteDockerから起動されたコンテナ―に対してのみコマンドを送れるようにするなど、サーバー側で学習者のプログラムを実行するためのいくつかのセキュリティー対策の改良を行った。 以前より開発しているWappenLite(JVMを利用してプログラミング言語処理系やコンパイルされたプログラムを実行するためのWebアプリケーションプログラム)にもタイムアウト処理など、サーバー側で学習者のプログラムを実行するための機能を追加した。 Blockly(ブロック方式のビジュアルプログラミングエディター)を利用したユーザーインターフェイスは、これまで構文解析のための基盤としてEmscripten上のC言語 (+ Bison/Flex) を利用していた。しかし、構文木の処理はHaskell言語で記述するほうが強力であるため、CのソースコードからBlocklyコードを生成するプログラムをHaskellで実装した。これにより、ソースコードで使われているパターンに応じてカスタム化されたブロックを利用できるようになった。 教師やTAがタブレットなどからソースコードにコメントを入力するためのシステムとして、サーバー側で動作するEclipse CDTのパーサーの解析結果をブラウザー側に送って、入力を支援するために利用するシステムを実装した。 Docker, JVM以外のプログラム実行方式の選択肢として、Haste, Emscripten, Clojureなど、ソースコードをJavaScriptに変換して実行する処理系を利用するWebアプリケーションを実装した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
昨年度に遅れていた部分(サーバー側で学習者のプログラムを実行するための対策・Blocklyのカスタムブロックの生成・構文解析の結果を利用して教師とTAのコメントの入力を支援するためのシステム)に対しては、それぞれ実装を進めている。しかし、遅れを完全に取り戻すことはできず、対象としているトピックの授業時期に間に合わなかったため、実運用してテストするには至らなかった。 Blocklyのカスタムブロックの生成プログラムについては当初はHaste(HaskellをJavaScriptに変換するコンパイラー)を利用してCソースコードの構文解析部を実装する予定があったが、生成されるJavaScript のコードのサイズがWebアプリケーションとしては大き過ぎることがわかったため断念した。現在は構文解析部はWebサーバー側で動いている。
|
今後の研究の推進方策 |
本研究の各サブシステムについては、実際に運用が可能な程度までほぼ実装が進んでいると考えている。そのため、コンテンツを用意して実際の授業で使用し、そのフィードバックを踏まえて改良を進める。授業としては学部・大学院で担当しているものほか、教員免許状更新講習・放送大学の面接授業でも一部を使用する予定である。 Blocklyのための構文解析部については、対象とするC言語の構文を学習用に使われるサブセットに限定すること、あるいはJavaScriptで記述されたParser (node.c.parser) などを利用することなどで、ブラウザー上で構文解析部を動作させることができないか、検討する必要がある。
|
次年度使用額が生じた理由 |
海外で開催される国際会議と学内の行事との日程が合わず、国内で開催される国際会議のみでの発表となったため、旅費の使用が予定より少なかった。 また、iOS/AndroidタブレットやノートPCと同時に持ち運べてサーバーとして利用できるSmall Form Factor PCの購入を検討していたが、授業での実運用の段階に至らなかったので、購入を遅らせている。
|