学習意欲、やる気を喚起する研究

プログラミング学習支援システム

 

東京情報大学総合情報学部情報システム学科(情報基盤システム研究室)教授、同学科長 
布広永示(ぬのひろ えいじ)

1957年島根県生まれ。日本大学大学院生産工学研究科修了。

専門分野:情報処理。

主な研究テーマ:分散処理、並列処理、教育支援システム、言語処理、アルゴリズム。

主な著書:コンパイラとバーチャルマシン(共著)オーム社、システム設計論(共著)コロナ社、Javaオブジェクト指向プログラミング(共著)オーム社、Java/UMLによるアプリケーション開発(共著)オーム社、ほか。

情報リテラシー教育やプログラミング教育に対する学習支援の研究は、情報処理技術の基礎能力を向上するための重要なテーマである。ここでは、学習意欲を喚起し、やる気を継続させる学習モデルを取り入れたプログラミング学習支援システムとして、東京情報大学で取り組んでいるCAPTAIN(Computer Aided Programming Training And Instruction)の研究について紹介する。

動機づけ教授法の必要性

理科系の大学だけではなく文科系の大学や高等学校を含めて、情報教育の実施方法や教育効果に対する関心は高まっている。情報教育の中でも、プログラミング教育は、情報処理技術の中核となる教育である。しかし、プログラミング教育では、プログラミング言語の文法以外に、オブジェクト指向などの設計論、プログラミングの題材として用いられるアルゴリズムなどの関連知識が必要である。このため、学習ステップの初期段階で講義についていけなくなり、その結果、学習意欲が低下してしまう傾向がある。このような背景から、プログラミング学習における動機づけ教授法の必要性は高くなっている。

学習モデルの体系化

学習支援システムを利用して学習効率を上げるためには、学習内容の充実と共に、学習者の学習意欲を喚起する、集中した学習状態を継続するなどの仕掛けが必要である。このような課題に対する学習モデルとして、動機づけ教育を目的とするARCSモデルがある。ARCSモデルは、学習者のやる気を喚起するための方法として次のような観点で学習モデルを体系化している。
【ARCSモデル】
(1)Attention(注意)
・学習内容を分かりやすく伝え、学習者の好奇心が喚起、持続させて、やる気を引出す
(2)Relevance(関連性)
・学習者の個人的な目標達成を助け、やりがいを感じさせて、勉強することを楽しめるようにする
(3)Confidence(自信)
・学習者に自己評価の機会を与え、学習の成功を重ねて、自分のためになっていると自信を持たせる
(4)Satisfaction(満足度)
・学習の努力や結果を評価し、学習に対しての報酬を与えて、達成感を感じさせる

 

 このARCSモデルの考え方をプログラミング学習に適用することを考え、プログラミング演習用に開発しているプログラミング学習支援システムCAPTAINの機能を次のように分類した。
【ARCSモデルに基づくプログラミング学習機能】
(1)Attention(注意)
・ゲーム感覚でプログラミングを学習することができる
・アニメーションやイラストなどを利用し、学習の中に気分転換や刺激を与える
(2)Relevance(関連性)
・学習スケジュールに沿った演習課題をナビゲーションできる
・学習者のレベルに合った演習問題を自動生成する
(3)Confidence(自信)
・学習項目単位の目標時間が設定でき、学習者のペースで学習を進められる
・学習者の習熟度や進捗状況を学習者と教員がリアルタイムに確認できる
(4)Satisfaction(満足度)
・段階的な課題を用意し、学習した内容を再確認する演習ができる
・学習効果と確認テストの関連性を把握できる

ゲーム感覚での理解

ARCSモデルに基づくプログラミング学習機能を段階的に開発しながら、学習意欲を喚起し、やる気を継続させるユーザインタフェースやプログラミングの知識を学習スケジュールに沿ったプロセスで習得する支援機能などの効果について評価を実施している。CAPTAIN は、現在、次の学習機能をサポートしている。
(1)Attention(注意)
・プログラムをパズルのように作成していくなど、ゲーム感覚でプログラミングすることができる
・アニメーションやイラストなどで、学習への好奇心や気分転換を与える
(2)Relevance(関連性)
・学習者のレベルに合った演習問題を自動生成する
(3)Confidence(自信)
・学習履歴の表示により進捗状況を確認できる
(4)Satisfaction(満足度)
・段階的な課題を用意し、学習した内容を再確認する演習ができる

 

これらの学習機能の中で、ゲーム感覚的なユーザインタフェースと演習課題の自動生成機能について説明する。CAPTAINは、ゲーム感覚でプログラムの構造と処理の流れを理解することを目的とし、演習課題の出題方法として、プログラムをパズルのように作成していくユーザインタフェースを実装している(図1)。図1において、学習者は左下のピース化されたプログラムを右下に移動してプログラムを完成させる。この演習課題の難易度、すなわち、ピース化されたプログラムを元のプログラムになるように組み立てていく難易度は、プログラムの分割数(パズルピースの数)や分割点(パズルピースの分割場所)に依存する。そこで、学習者の学習履歴から習熟度を分析し、学習者の習熟度に合ったプログラムのピース化(分割数や分割点の決定)アルゴリズムを開発した。また、学習者の興味を引くような学習環境を提供するため、演習結果に対して励ましのコメントを出すアニメーションや、進捗状況に合わせてキャラクターを変化させるなど、視覚的な表示によって単調になりがちな学習に刺激を与える機能を実装した(図2)。

利用方法などに今後の課題

CAPTAINを東京情報大学総合情報学部情報システム学科2年次の科目であるオブジェクト指向プログラミングの実技演習で活用している(図3)。このオブジェクト指向プログラミングでは演習開始時の学生の学力に差があることから学期の初めにクラス分けテストを行い、上級1クラス、中級1クラス、初級3クラスにクラスを分け、初級3クラスにCAPTAINを導入している。各クラスの学生数は、約30名である。
 CAPTAINを使用した初級クラスの学生に対し、無記名によるアンケート調査と確認テストを実施した。アンケート結果では、「使いやすい」「役に立った」などの評価を得られたが、確認テストの結果からは学習者の理解度向上はあまり見られなかった。この理由としては、システムの利用方法、演習課題の内容、評価方法などの問題が考えられるが、それ以外に学習支援システムの機能が、学習者が自発的に学習することを前提としている傾向にあることが問題として挙げられる。
 このような問題に対応するためには、学習者がどこで悩んでいるのかなどの情報をリアルタイムに収集・分析し、その結果を教員が評価して学習者をフォローすることで、学習者の集中力を引き出す、あるいは適度な緊張感を与えるような機能が必要であると考える。今後は、学習者の学習効率や理解状況などを動的に分析しながらプログラミング学習をリアルタイムに支援する機能や学習グループにおける学習者の相対的な学習状況を表示して競争的な学習を実施する機能などを取り入れた学習モデルの提案とその学習モデルを学習者に提供するための学習支援システムの研究を進めていく予定である。

 なお、本研究は、科学研究費(課題番号:21500953)の助成を受けたものである。感謝したい。

 

図1 演習画面例
図2 解答画面例(正解時アニメーション)
図3 CAPTAINを使用した演習風景

 

×CLOSE