プログラミング学習環境のスマートデバイス対応の研究
Project/Area Number |
15K01075
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Research Field |
Educational technology
|
Research Institution | Kagawa University |
Principal Investigator |
香川 考司 香川大学, 創造工学部, 准教授 (50284344)
|
Project Period (FY) |
2015-04-01 – 2020-03-31
|
Project Status |
Granted (Fiscal Year 2018)
|
Budget Amount *help |
¥3,640,000 (Direct Cost: ¥2,800,000、Indirect Cost: ¥840,000)
Fiscal Year 2018: ¥780,000 (Direct Cost: ¥600,000、Indirect Cost: ¥180,000)
Fiscal Year 2017: ¥1,040,000 (Direct Cost: ¥800,000、Indirect Cost: ¥240,000)
Fiscal Year 2016: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
Fiscal Year 2015: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
|
Keywords | e-ラーニング / Webアプリケーション / プログラミング |
Outline of Annual Research Achievements |
HaskellのC言語パーサーライブラリーであるlanguage-c-quoteを利用して、C言語のソースファイルにプログラム可視化のための改変をおこなうプログラムを作成し、これと2017年度より開発しているWappenLiteDocker(Docker (https://www.docker.com/) を利用してプログラミング言語処理系やコンパイルされたプログラムを実行するためのWebアプリケーションプログラム)を組み合わせたWebベースのC言語プログラム可視化システムを作成した。 Blockly(ブロック方式のビジュアルプログラミングエディター)に対して、Haskellに対応したいくつかのブロックとソースプログラム生成器を実装した。また、PythonとJavaScriptのジェネレーター関数に対応したブロックを実装した。 教師やTAがタブレットなどからソースコードにコメントを入力するためのシステムでは、拡張性を考慮し、サーバー側で動作するパーサーをJava言語で実装されたEclipse CDTライブラリーによるパーサーから、Haskellで実装されたlanguage-c-quoteライブラリーによるパーサーに切り替えた。 Docker, JVM以外のプログラム実行方式の選択肢として、Kotlin/JS, TeaVM(JavaクラスファイルからJavaScriptへのコンパイラー)などを利用して、JavaScriptに変換されたコードを利用するWebアプリケーションを実装した。
|
Current Status of Research Progress |
Current Status of Research Progress
3: Progress in research has been slightly delayed.
Reason
WappenLiteDockerに関しては、今年度実際に授業で使用できると考えていたが、いくつかの理由で提供できていない。まず、DockerサーバーをクライアントPC側で実行する方式では負荷が集中しないため動作が安定しているものの、DockerサーバーをWindowsにインストールすることは一般的でないため、授業などで大々的に使用することはできていない。一方で、Dockerサーバーをサーバーコンピューター側で実行する方式では、負荷がある程度かかったときにWappenLiteDockerに不具合が発生しており、やはり授業での使用を見合わせている。 Blocklyを利用したUIに関しては、手続き(procedure)定義に類似したブロックに対するメニューを定義する方法がわからなかったため、HaskellやPrologなどの言語でいくつかのブロックが用意できなかったが、現在のバージョンのBlocklyではドキュメントが整備され方法が明らかになった。 教師とTAのコメントの入力を支援するためのシステムについては、サーバー側の実装言語をJavaからHaskellに切り替えていたため、新しい機能の実装が止まっていたが、切り替えが完了したため、クライアント側の機能の実装に着手する。
|
Strategy for Future Research Activity |
WappenLiteDockerについては、負荷がかかったときの不具合を解消するために改良と小規模な実験を繰り返す必要がある。またステートレスなサービスを利用できる部分はできるだけ切り分けて、できるだけWappenLiteDockerの負荷を避けられるようにする、JavaScriptをターゲットとする処理系を利用したシステムをできるだけ活用する、Windows Subsystem for Linuxを活用したDockerのWindowsへのインストールを推進する、などいくつかの方策を並行して提供し、授業で使用できるようにする。授業としては学部・大学院で担当しているものほか、教員免許状更新講習でも一部を使用する予定である。 Blocklyを利用したUIに関しては、引き続きHaskell, Prologなどの言語用のブロックとソースプログラム生成器の実装を増やしていく必要がある。また、パーサーを利用したC言語用のカスタムブロックの生成についても実装を続け、小さな画面でも利用できることを実験で確認したい。
|
Report
(4 results)
Research Products
(24 results)