• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2017 年度 実施状況報告書

プログラミング学習環境のスマートデバイス対応の研究

研究課題

研究課題/領域番号 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の購入を検討していたが、授業での実運用の段階に至らなかったので、購入を遅らせている。

  • 研究成果

    (7件)

すべて 2017 その他

すべて 雑誌論文 (1件) (うち査読あり 1件) 学会発表 (5件) (うち国際学会 2件) 備考 (1件)

  • [雑誌論文] Development of a CPU Scheduling Algorithms Visualizer using JavaScript2017

    • 著者名/発表者名
      Nishiyama Kyohei、Kagawa Koji、Imai Yoshiro
    • 雑誌名

      電気学会論文誌C(電子・情報・システム部門誌) IEEJ Transactions on Electronics, Information and Systems

      巻: 137 ページ: 1641~1648

    • DOI

      10.1541/ieejeiss.137.1641

    • 査読あり
  • [学会発表] WappenLiteDocker - A Interface Program between a Web-Browser and a Docker Engine2017

    • 著者名/発表者名
      Koji Kagawa, Haruhiko Nishina and Yoshiro Imai
    • 学会等名
      The Third International Conference on Electronics and Software Science (ICESS2017)
    • 国際学会
  • [学会発表] Redesign of WappenLite: a Localhost Web Application Framework for Web-based Programming Environments2017

    • 著者名/発表者名
      Koji Kagawa
    • 学会等名
      Workshop on Computation: Theory and Practice (WCTP 2017)
    • 国際学会
  • [学会発表] 再帰下降構文解析に対するWebベース学習支援システムの開発2017

    • 著者名/発表者名
      大橋 健太・香川 考司
    • 学会等名
      【C】平成29年電気学会電子・情報・システム部門大会
  • [学会発表] Dockerを用いたプログラム実行環境の開発2017

    • 著者名/発表者名
      仁科 陽彦・香川 考司
    • 学会等名
      【C】平成29年電気学会電子・情報・システム部門大会
  • [学会発表] Haskellによるパーサーを使用したC言語用Blocklyプログラム生成の自動化2017

    • 著者名/発表者名
      山形 悠人・香川 考司
    • 学会等名
      情報処理学会 コンピュータと教育研究会 142回研究発表会
  • [備考] WappenLite

    • URL

      http://guppy.eng.kagawa-u.ac.jp/WappenLite/

URL: 

公開日: 2018-12-17  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi