2019 Fiscal Year Research-status Report
実践的ソフトウェア開発に寄与するプログラミングおよびコーディング学習に関する研究
Project/Area Number |
18K11587
|
Research Institution | Kanagawa Institute of Technology |
Principal Investigator |
納富 一宏 神奈川工科大学, 情報学部, 教授 (50228300)
|
Project Period (FY) |
2018-04-01 – 2021-03-31
|
Keywords | プログラミング教育 / ソフトウェア開発 / コーディングスタイル / ラピッド・プロトタイピング / コードレビュー |
Outline of Annual Research Achievements |
本研究では,「プログラミング時のキーボード操作における時系列情報を活用したコーディングスタイル学習」を実現するシステムを開発研究することにより,提案方式およびシステムがプログラミングのコーディングにまつわる問題解決に寄与できること,さらには,企業が求めるIT人材養成の実践教育に役立つことを明らかにすることを目的に2年目の取り組みを実施した.これまでの研究により,ステップ2として,2年目に掲げた目標「コーディングスタイル学習システムの完成と複数科目による動作検証実験の実施と評価」については下記の成果が得られた. (1)プロトタイプシステムの動作検証によりソースコード編集時のコピー&ペースやIMEによるかな漢字変換など一部のコーディング操作の記録・再生に問題があることが分かった.これによりシステムの改修を進めた. (2)C言語,C++言語,Java言語を対象とする3つのプログラミング演習授業を想定し,演習問題を各言語においておよそ60問用意し,それぞれをコーディングする際の打鍵・編集操作を,開発システムを用いて記録すると共に,スクリーンキャスト方式による画面録画を実施することで,分析データの収集を行った.各演習問題はコーディング時間にして1分~10分程度のものであり,動的なコーディングを学ぶことのできるデータとして価値が高い.これらデータはコーディングのお手本として学習者へ提示・活用することができる. (3)これらのデータ分析を進める中で,プログラミングスキルの違いによるフィードバックの必要性が確認された.また,お手本とするコーディングスタイル(教示データ)の提示により,学習者への負荷が高まる場合があることが確認された.これは提示速度の調整や,学ぶべきコーディングスタイルの重要ポイントをテロップやキャプションとして提示する方式の採用などを採用する必要があることが示唆された.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
2年目の目標である「コーディングスタイル学習システムの完成と複数科目による動作検証実験の実施と評価」において,学習システムの動作検証と改修については完了した.しかしながら,プログラミング演習授業で利用しているVisual CodeやEclipseといったプログラム開発環境は,単純なテキストエディタとは異なるため,実際に授業で用いた場合に,当初想定された学習システムの有用性が低いという判断に繋がっている.これはスニペットなどコーディング段階での構文や関数呼び出し時のパラメータに関するヒント提示や,ブロックやカッコの対応を自動判定入力機能でカバーするなど現在の多くのプログラミング環境の標準とは異なる点に起因するものであると言える.これらの点については,今後,新たなアイディアを検討する必要がある. また,習熟度に応じた対応として,個人適応型のヒント提示機構というアイディアを検討してきたが学習システムに取り入れるところまでは至っていない.これは,先に述べた内容とも関連するが,既存のプログラム開発環境におけるスニペットなどは,プログラミング言語の構文や関数など個人のスキルレベル以外のものを扱うものであり,個人適応型とは明らかに異なる.よって,一般的なスキルに応じたヒントを知識として扱うか,あるいは機械学習的なアプローチにより個人のプログラミング(打鍵)特性から癖を判断するなど,あらたな方式を研究することが求められるはずである. これらのことから,3年目については有効なフィードバックの検討を行う必要がある.また,教育・学習ポートフォリオへの応用を考慮していくことが重要である.
|
Strategy for Future Research Activity |
第2ステップの最終段階で得られた改修システムだけでは,標準的なプログラム開発環境と比べてスニペット機能など魅力付けが不足している.この理由によりプログラミング演習授業での有用性は低下する.そこで,標準機能の追加実装と2年目に検討した個人適応型のヒント提示機能のプロトタイプ実装を行い,学習システムの完成度を高める.
また,3年目となる2020年度はコロナウイルス感染症拡大防止のため,長期間に渡りオンライン授業を実施する方針が示されている.こうした状況の中,本研究で提案している「プログラミング時のキーボード操作における時系列情報を活用したコーディングスタイル学習」は,通常の動画データ配信による通信量を大きく削減する方式として,まさに最適である.この点に着目し,比較検証実験を行うことで定量的な違いを明らかにしたい.
当初計画の通り,記録された情報の有効な活用方法を見出すことを目的として,教育・学習ポートフォリオへの応用を考慮すると共に,学生へのフィードバックの方法論を確立する.教員の授業の進め方は,教育ポートフォリオとしての付加価値を有する.また,学生の反応や行動は学習ポートフォリオとしての付加価値を有する.よって,これら双方への応用が可能だと考えられる.学生の反応に応じた情報提示のタイミングの工夫や追加課題の与え方など,授業進行モデルから得られる知見は学生への有効なフィードバックを考える上で重要となる.よって,本研究の最終段階として応用面にスポットを当てて検討を進め,最終的なシステム開発および拡充を完成させる.ここまでをステップ3(3年目の取り組み)とする.
|
Causes of Carryover |
コロナウイルス感染症拡大防止のため参加予定であった3月の学会がオンライン開催となり,旅費の支出がなかった.また,その後の緊急事態宣言に至るまでの影響で,2~3月中の大学構内への入構制限により,データ分析補助のアルバイト雇用が計画通りに確保できず,研究計画の変更を余儀なくされたため,次年度での使用とした.
|