関東地区

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

プログラミング学習のためのトレーシング課題に対する学習者の誤答パターンの分類方法の提案
A Method for Classification of Students in Programming Classbase on Patterns of Mistakes in Making Trace Tables
*1

*1

*1

長島 和哉 , 華山 宣胤 , 山本 樹
*1
*1
*1
Kazuya NAGASHIMA , Nobutane HANAYAMA , Tatsuki YAMAMOTO*1
尚美学園大学 情報表現学科*1
Faculty of Informatics for Art,, Shobi University
Email: nerosr999@yahoo.co.jp
あらまし：プログラミングを学習する過程では，学習者がプログラムの動作を思考し，思考したプロセスを自己の中で形成し，形成したプロセスを，実際のプログラムの動作と一致させることが重要である．この教育を行うため，トレーシングさせるための機能を持った VP 環境を利用し授業を実施した．本稿では，
この問題から学習者の誤答パターンの分類方法するための手法を提案するものである．
キーワード：プログラミング教育，トレーシング，因子分析

1.

判断の結果についてはその真偽を，表の対応する列のセルの色を，真なら青，偽なら赤で表現する．

はじめに本研究で対象とする手続き型構造化プログラミン
グは，プログラムを作成する前に，変数，代入・演算などの操作，順接・分岐・反復の動作順序などに関する概念について正しく理解する必要がある．これらの基本的な概念を習得した後にプログラムを作成する段階に進むことが学習のプロセスであると考えている(1)．この学習プロセスに習い，筆者らはプ
ログラムの基本的な概念を理解させるために，プログラムの動作を追う，すなわちトレーシングを利用した教育を，ビジュアルプログラミング環境を用いて授業の早い段階で実施している．この結果，誤答した学習者に一定の誤答傾向が見られるのではないかと考えた．そこで，本稿では，トレーシング課題を用いて，誤答パターンの分類するための分析方法を提案することを目的とする．

2.

3.

評価手順(4)

3.1 対象授業と対象者
対象授業は，尚美学園大学情報表現学科の 1 年次秋学期配当の必修科目「プログラミング初級演習 1である．この授業は 1 回 90×2 コマの演習形式の授業で，対象者はこの授業の 2015 年度の履修者（再履修者を含む）である．初級演習 1 では，授業の初段階で AT を利用し．基本的なプログラムの動作（振る舞い）を学習し，中期以降，C 言語を用いたプログラムを作成させる授業を行っている．
3.2 対象データ
AT を利用した授業終了後に実施した中間試験のトレーシング問題 2 問を対象データとした．提示した問題のプログラム構成は下記の通りである．
（問題 1）入力，反復，乗算式，出力（問題 2）入力，反復，分岐，加算式，出力

課題の形式と利用環境(2)

本研究で使用した問題は，ビジュアルプログラミ
ング環境 AT(3)を用いた．提示方法は，プログラムとその動作を学習者が記入するための表を並べて提示している．表の各行と各列は，プログラムの各行と各変数にそれぞれ対応しており，プログラムの各行の実行結果を，表の同じ行の対応する変数の列に記入する．また，同じ行が複数回実行される場合があるため，実行される回数に応じて右方向に同様の表を並べている．ある行が反復して実行された場合には，左隣の表へ移動し結果を記入することで，プログラムの全ての動作を記録することができる． 実行
結果として表に記入する項目は，変数の値の変化，条件判断，入力・出力された値，代入された値の 4つである．変数が宣言されたときや変数の値に変化が生じたときには， 変数の値を表の対応する列に記入する．変数の値が不定であるときには，不定である旨を記入する（今回は「―」で表す）．また，条件

3.3 誤答箇所の確認
中間試験で提示したトレース課題で， 誤答した箇所を，下記の 7 項目を抽出した．
1. 解答に超過しているセル：正解では空だが，解答では値が書かれている
2. 解答に不足しているセル：正解では値が書かれているが，解答では空3. 解答の値が誤っているセル：正解と同じ箇所だが，値が誤っている
4. 真の超過セル：正解では真になっていないが，解答では真になっている
5. 真の不足セル：正解では真になっているが，解答では真になっていない
6. 偽の超過セル：正解では偽になっていないが，解答では偽になっている
7. 偽の不足セル：正解では偽になっているが，解答

53

関東地区

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

では偽になっていない

表2

3.4 因子分析を用いた誤答傾向の確認
3.3 の抽出結果と，教授者の経験則から，誤答と考えられる項目を下記の 7 つに分類し，該当した場合１，そうでない場合 0 のダミー変数を用いて因子分析を行った．
(a) Verify truth：真偽の確認(b) Understanding rule：ルールの理解(c) Understanding command：コマンドの理解(d) Understanding constant value：定数の理解(e) Understanding loop：ループの理解(f) Careless for [i]：変数 i に関するケアレスミス(g-1) Careless for [k]:：変数 k に関するケアレスミス（問題 1 のみ）(g-2) Careless for [k] and [a]：変数 k と a に関するケアレスミス（問題 2 のみ）

4.

因子 3

constant value

0.911-0.013-0.038Understanding rule

0.805

0.108

0.124

Understanding loop

0.145

0.902

-0.089command0.065

0.557

0.027

Careless for [i]0.009-0.023

0.955

Verify truth

0.195

0.549

0.594

Careless for [k]-0.033

0.164

0.053

因子 3

Careless for [i]0.789-0.1380.230

Verify truth

0.543

0.717

0.178

Understanding rule

0.324

0.432

0.572

-0.004

0.270

0.509

constant value-0.007

0.136

0.016

Understanding loop

-0.099

0.387

0.075

Careless for [k] and [a]0.191-0.056

0.485

Understanding

負荷量が示されていることから，条件判断の理解についての因子と考える．第 3 因子は寄与率が 13.04%で，「Understanding rule」と「Understanding command」項目に比較的高い負荷量が示されていることから，変数の変化する位置の理解についての因子と考えられる．3 つの因子の累積寄与率は 42.08%のため，因子解釈の点からは妥当なものとは判断しかねる．

問題１の因子分析結果
因子 2

因子 2command

問題 1 の因子分析の結果を表 1 に示す．

因子 1

因子 1

Understanding結果と考察
表 1

問題 2 の因子分析結果

Understanding

5.

Understanding

結 果 ， 第 1 因 子 は 寄 与 率 が 22.03% で ，「Understanding constant value」と「Understandingrule」の項目に高い負荷量が示されていることから，変数の変化する位置の理解についての因子と考えられる．第 2 因子は寄与率が 20.91%で，「Understandingloop」と「Understanding command」の項目に高い負荷量が示されていることから，繰り返しと繰り返しの中にある算術演算との関係の理解についての因子と考えられる．第 3 因子の寄与率は 18.47%で「Careless for [i]」と「Verify truth」の項目に高い負荷量が示されていることから，繰り返しの概念理解についての因子と考える． 3 つの因子の累積寄与率は 61.41%となり，因子解釈の点からは妥当なものと判断できる．変数の変化する位置の理解についての問題 2 の因子分析の結果を表 2 に示す．
結果，第 1 因子は寄与率が 15.27 で，「Careless for[i]」項目に高い負荷量が示されており，「Verify truth」に比較的高い負荷量がしめされていることから，繰り返しの概念理解についての因子と考える．第 2 因子は寄与率が 13.78%で，「Verify truth」項目に高い

54

まとめ

問題 1，2 共通して，「Careless for [i]」と「Verify truth」の項目が同じ因子に分類されたことから，反復に関しての理解が不十分な学習者群がいることが考えられる．また，問題 1 で「Understanding constant value」と「Understanding rule」が，問題 2 で「Understandingrule」と「Understanding command」項目が同じ因子であることから，プログラムの基本動作の理解はできているものの，トレース課題の記述ミスや計算ミスといったケアレスミスの学習者群がいることが考えられる．
一方，問題 2 で，「「Understanding command」，「Understanding loop」，「Careless for [k] and [a]」項目が，どの因子にも属さない結果となった．この点については，誤答項目の再検討が必要であると考える．
参考文献(1) 文部科学省，中学校学習指導要領，March 2008．
http://www.mext.go.jp/a_menu/shotou/new-cs/youryou/ics
Files/a_eld_le/2015/03/26/13562511.pdf（2017 年 2 月 3日アクセス）(2) 湯沢航太，國宗永佳，新村正明：“プログラムの動作理解を表出する課題形式の提案”，信学技法，ET2016-2，pp.49-52（2016）(3) 小林慶，國宗永佳，香山瑞恵，"アルゴリズム的思考法教育を支援するビジュアルプログラミング環境の開発"， 教育システム情報学会研究報告，vol.27，no.4，
pp.3−8（2012）(4) 山本樹，華山宣胤，國宗永佳，："プログラムの動作理解を表出する課題の実践と評価"，教育システム情報学会研究報告，vol.31，no.7（掲載予定）