東海地区

教育システム情報学会 2016年度学生研究発表会

学習マップを用いたプログラミング初級者への学習支援システムの構築
Construction of a Learning Support Systemfor Novice Programmers Using a Domain Map
*1

*2

*2

*3

*2

朝倉 諒介 , 野口 靖浩 , 小暮 悟 , 山下 浩一 , 小西 達裕 , 伊東 幸宏
*1

*2

*2

*4

*3

*2

Ryosuke ASAKURA , Yasuhiro NOGUCHI , Satoru KOGURE , Koichi YAMASHITA , Tatsuhiro KONISHI ,*4
Yukihiro ITOH
*1
静岡大学大学院総合科学技術研究科情報学専攻*1
Department of Informatics, Graduate School of Integrated Science and Technology, Shizuoka University*2*3
静岡大学情報学部
常葉大学経営学部*2*3
Faculty of Informatics, Shizuoka University
Faculty of Business Administration, Tokoha University
*4
静岡大学
*4
Shizuoka University
Email: gs15002@s.inf.shizuoka.ac.jp
あらまし：本研究では，Java プログラミングを学習するプログラミング初級者が自身の学習状況を把握することを支援するシステムを構築する．Java プログラミングの学習項目を要素としたマップ「学習マップ」を用意し，学習者が理解している項目とそうでない項目とを異なる色で表示することで，学習者に自身の学習状況を把握させる．学習者の負荷低減のために，システムへの学習状況の登録は一部自動化する．
キーワード：プログラミング教育，学習支援，学習マップ

1.

研究の背景・目的

プログラミング演習では，自身が理解できていること，いないことを把握できていないため，課題に取り組んでいる時に行き詰りの原因が分からず，解決の方法が分からない学習者が一定数見受けられる．
この問題の原因として，①学習者が学ぶべき学習項目の全体像を把握できていない，②学習者が学んだ学習項目について十分に理解できているという自信を持てていない，の 2 つがあげられる．
原因①の解消のために，すべての学習項目を提示することで，学習項目の全体像を把握させる．また，学習項目を地図形式で視覚化することで全体を俯瞰しやすくする．学習項目を地図形式で表現したもの(以下，学習マップ)に学習者の学習状況を反映させることで，簡便に学習状況を把握できる．学習者のシステムへの学習状況の登録の負荷を低減するために，学習者が作成したプログラムやレポートを用いて自動的にマップの状態を変化させる．学習マップを用いた研究としては，マップを学習者自身に描かせる試み(1)がある．しかし，本研究で想定する水準の学習者にはやや困難な手法であると考えている．
原因②の解消のために，学習者が自信をもてるような確認問題を用意する．確認問題を解いた結果を学習マップに反映させることで，学習者は能動的にマップを変化させていくことができる．
本システムはプログラミングに特化した e ポートフォリオとして位置づけられる．ポートフォリオを用いた学習では，学習成果を蓄積することが学習者にとって負担となることがある．本システムでは，授業で提出するレポート及びそこに含まれるソース69コード，5 分程度で解答が可能な確認問題を用いて学習成果を自動的に蓄積していくことで，学習者の負担を軽減させる．
本研究では，学習マップを用いて学習者が自身の学習状況を把握することを支援するシステムを構築した．実践的評価を行ったところ，学習状況の把握に一定の有効性を持つことが示唆された．

2.

基礎的考察

2.1 学習項目の決定
Java 言語における学習項目を Java 言語の教科書(2)を参考に決定した．その結果，学習項目として大項目 11 個，小項目 40 個が定義された．静岡大学情報学部の 2014 年度後期プログラミング講義資料を調査し各項目の重要度を決定した．また，項目の学習順序を示す項目間の依存関係を整理した．
2.2 学習状況把握のためのデータ取得
学習状況を把握するためのデータの取得方法は以下の条件を満たすように設計する．
条件A 普通に授業・演習に参加していれば一定の達成判定が認められること
条件B 学習者自身の意思で特定の項目の達成を試みることが可能であること
条件 A のために，ⅰ「学習者が作成したソースコードの解析結果」，ⅱ「教師のレポート評価結果」を用いて学習状況を蓄積する．ⅰは，学習者が課題として作成したソースコードに対してパターンマッチングを行い，ソースコード内に存在する学習項目を確認する．ⅱは，教師にレポート作成に必要な学習項目をあらかじめ設定してもらい，レポートの合格東海地区

教育システム情報学会 2016年度学生研究発表会

者はそれらの学習項目が理解済みであるとする．
条件 B のために，ⅲ「学習項目ごとの確認問題」を用意し，正解したらその項目を理解済みであるとする．この確認問題は，Java 言語の教科書(2)，(3)を参考に 137 問を作成した．さらに，反復的に確認問題を解くことを可能にするため，問題とその正答をテンプレートを用いて自動生成する機能を実現する．
ⅰ，ⅱによる評価をした学習項目は「仮学習済」，ⅲによる評価は「学習済」とし，評価を行っていない項目は「未学習」として，学習状況を蓄積する．

図 2 システム構成図
静岡大学情報学部情報科学科 1 年生 8 名を被験者として実験を行った．実験は二度行い，一度目の実
験では，システム説明，システム利用，インタビューを行った．二度目の実験では，プレテスト，システム利用，ポストテスト，アンケート，インタビューを行った．プレテスト、ポストテストでは自身が理解している学習項目，弱点だと思っている学習項目を記述させた．
仮説 1 については，プレテストとポストテストの記述内容を比較してシステム利用の効果を検証した．
表 1 に示すように，理解している学習項目、弱点だと思っている学習項目ともに，全体として記述量が増加した．しかし，次に学習すべきことを自身で決定できるかどうかは，今回の実験では確認できなかった．以上から，仮説 1 は限定的に支持された．
表 1 記述された学習項目数の平均

2.3 学習状況の視覚化方法
学習項目の視覚化を行うにあたり，Ⅰ学習者が自身の学習状況を把握可能，Ⅱ学習者による学習順序の決定を支援，の 2 つの要求を満たす必要がある．
Ⅰを満たすために，「学習済」，「仮学習済」，「未学習」それぞれの学習状況の項目を異なる色で表示する．Ⅱを満たすために学習項目に設定した重要度，依存関係を利用する．図 1 の学習マップでは，重要度の高い項目ほど大きな領域で表現する．依存関係のある項目は隣接関係になるように配置する．さらに，被依存側の学習項目を相対的に下方に配置することで，上方から下方に項目を埋めていけばスムーズに学習を行えるようになっている．

仮説 2 については，アンケートから全員が「確認問題を解くことによって，対応する学習項目に自信がついた」もしくは「少しついた」と回答した．これにより，仮説 2 は支持された．
仮説 3 については，アンケートで学習の動機づけとなった要因について記述させたところ，「マップを埋めたかったから」という要因が 5 段階評価で平均4 点となった．これは，すべての要因の内で「確認問題が適量だったから」に並んで最も高い評価だった．これにより，仮説 3 は支持された．

図 1 学習マップ

3.

システムの設計

本システムでは，2 基礎的考察で述べた学習支援を実現するために，マップ拡大縮小機能，ソースコード解析機能，確認問題自動生成・出題機能，確認問題採点機能，学習計画機能を設計した．学習者が提出したレポート及び解答した確認問題の採点結果を学習マップに反映するまでの流れを図 2 に示す．

4.

5.

むすび

本稿では，学習マップを用いた学習状況把握支援システムを構築し，評価実験を実施した．結果，システムに一定の有効性が示唆された．
参考文献

評価実験

以下の実験仮説を設定した．
仮説1. マップを確認することでプログラミングの学習状況をよりよく把握することができ，次に学習すべき項目を自身で決定できる
仮説2. このシステムの確認問題を解くことで Java の学習項目に対して自信をつけることができる
仮説3. マップを埋めることが確認問題を解く動機づけになる(1) 伊藤佳輝, 米澤宣義, 学習者の課題関連認知マップを正しいマップに誘導するナビゲーションシステム,
電 子 情 報 通 信 学 会 技 術 研 究 報 告 .ET, 教 育 工 学
112(500), 167-172, （2013）(2) 川場隆, 新わかりやすい Java 入門編, 秀和システム,（2015）(3) Joseph O’Neil, 独習 Java 第 4 版, 翔泳社, （2008）70