問題解決能力育成のためのプログラム作成に向け

日本科学教育学会研究会研究報告 Vol. 29 No. 4(2015)
問題解決能力育成のためのプログラム作成に向けた学習法の提案
Suggestion of the Learning Method for the Programing related Problem Solving ability
下郡啓夫*1 ,大場みち子*2
,伊藤恵*2
Akio SHIMOGOHRI*1, Michiko OBA*2, Kei ITO*2
*1
函館工業高等専門学校
*2
公立はこだて未来大学
National Institute of Technology, Hakodate College ,*2Future University Hakodate
*1
[要約]
プログラミング教育では,従来の演習型授業であるプログラミング学習を e-learning 学習支援システム
を用いたブレンディッド学習で実践することが多くなっている.しかし,実際には e-Learning 学習支
援システムによる学習は,例題の模倣によるプログラムの作成練習を行うことが多く,問題解決能力を
高めるところまでいきついていないことが多い.そこで我々は、問題解決能力を高める1つの方法とし
て,プログラミング作成過程の見える化をしていくことで,プログラムの構造理解を促進し,学習支援
できるのではないかと考えた.具体的には、プログラム構文の理解を問う設問と,プログラムの組み立
てを問う設問との間で,吹き出しの設問を準備し,プログラミング思考過程をメタ認知する力を育成す
るというものである.現在公立はこだて未来大学 Java 演習で取り組んでいる紙のクイズを用いた実践
を元に,上記指導にいきついた経緯を述べる。
[キーワード] プログラミング教育,統合開発環境,吹き出し
2.先行研究
1.はじめに
問題解決能力育成を視点にプログラム教育を
統合開発環境を用いてのプログラミングでは,
作業が効率化されるため,冗長な作業に囚われず
行っている事例として,アルゴリズム作成までの
に高度なプログラム開発が行える.その弊害とし
プロセスを重視した学習支援システム学習支援
て例えば,コンパイラ前に自分のプログラムを推
システムを活用した研究がある.内容としては,
敲することなく,実行結果が期待通りに得られな
プログラミング作業において,入力・処理・出力
い場合にはじめて考えることなどがある.
等の目的や一連の流れを明確にする,段階的詳細
そこでプログラミング作成の思考過程を意識
化からアルゴリズム作成・テストを重視する指導
させるため,第二著者及び第三著者の所属大学の
を学習支援システム上で行うものである.その中
プログラミング演習科目に対して,敢えて紙のメ
で,事前・事後のアンケートから,「課題を段階
モ用紙の使用を推奨した.また,演習時間中に紙
的に考える力」「課題を解決する力」に有意水準
のクイズ用紙を配布することにより,プログラミ
1%で有意差があったことが報告されている(2).
また,問題解決のプロセスを重視したアプロー
ング学習者の統合開発環境に頼らない思考の促
進とその思考の現状調査を試みた(1).
チでプログラミングを指導した場合,問題解決能
その現状調査を踏まえ,プログラミング知識の
力の転移が起こりやすいとの研究事例もある(3),
活用だけでなく,問題解決能力を高める学習法に
このことから,プログラミング作成過程におい
ついて考える.
て,アルゴリズム作成までのプロセスを意識させ
ることが問題解決能力の育成につながると考え
られる.
― 73 ―
日本科学教育学会研究会研究報告 Vol. 29 No. 4(2015)
しかし,実際には e-Learning 学習支援システ
年次後期選択科目として開講している.前者では,
ムによる学習は,例題の模倣によるプログラムの
開講に当たっては受講学生をコースが混在しな
作成練習を行うことが多く,問題解決能力を高め
いよう 5 つのクラスに分けている.そして,各ク
るところまでいきついていないことが多い.そこ
ラスに教員 1 名と Teaching Assistant(以下,
で我々は、問題解決能力を高める1つの方法とし
TA)数名を配置している.
て,プログラミング作成過程の見える化をしてい
授業形態は,事前に演習資料で予習,演習時間
くことで,プログラムの構造理解を促進し,学習
は受講生各自が課題を読んで解く自習中心の形
支援できるのではないかとの着想を得た.
態となっている.教員と TA は主に演習時間中の
以下,第二著者及び第三著者で行われている授
質問対応に当たる.成績はその演習課題の点数を
業の状況を省みて,新たな学習支援の方法を提案
中心として評価される.演習課題の採点は予め用
する.
意された採点プログラムによる自動採点と教員
による採点を併用して行っている.
3.対象とする授業
1)著者ら所属大学のプログラミング教育
4.実施内容
第二著者及び第三著者の所属大学では,1 年次
2013 年度 2 年前期の Java 演習において,開講
に Processing 及び C 言語を用いたプログラミン
している 5 クラス中の特定の 1 クラス(41 名)のみ
グ科目を実施している.また,2 年次に Java 言
を対象としてメモ用紙の導入を行った.それぞれ
語を用いたプログラミング科目を実施している.
の年度とも第二著者及び第三著者らの所属大学
Processing の授業では紙の小テストを実施し
の特定のコースに所属する学部 2 年生のうちの約
ているが,内容は極めて初歩的な内容である.そ
半数が受講している.また,1 年次の Processing
のため,プログラムをコンピュータ上で実行する
及び C 言語の授業観察から,2 つの年度間に学生
前によく考えることまで促せていない.また C 言
の思考傾向には大きな違いはないと考えられる.
語の授業は汎用エディタとコンパイラを用いて
1)メモ+自習クイズ用紙の導入
演習を実施しているが,プログラミングが得意な
2013 年度前期の Java 演習において第三著者が
一部の受講学生以外コンパイル前に推敲するこ
担当していたクラスで,学期始めからメモ用紙を
とは出来ていないようである.
導入した.両面 A4 紙のメモ用紙のうち片面半分
上述した傾向を受け,本研究では統合開発環境
程度に,課題の理解を確かめるクイズと,プログ
を用いた演習を実施している 2 年次の Java 演習
ラム化する際に必要となるプログラム要素に関
科目に着目して,思考の促進と調査を行うことと
するクイズを記載した.自習クイズの例は図 4 に
した.本科目に着目したのは,アルゴリズムに関
示す.ただし,メモ用紙自体は演習全 13 回配布
する授業を 2 年次 Java 演習科目と並行して実施
したが,クイズは準備の都合上第 1 回~第 6 回,
しており,プログラムの動作の推敲が特に重要と
第 8 回,第 11 回の計 8 回分のみの提供であり,
なるタイミングであると考えたためである.
その他の回は記名欄のみ印刷されたメモ用紙で
2)対象とする Java 演習科目
あった.また,クイズは採点や解答例の提示も一
第二著者および第三著者の所属大学では,学部
切行わず,学習者がそれをどう使うかも含めてす
学生を本人の希望と 1 年次の成績から 4 つのコー
べて学習者自身の判断に任せた.その結果,回収
スに分属させている.本研究で対象とする Java
率は約 97.6%であった.メモ用紙の使用率及びク
演習科目は,4 つのうちの 3 つのコースでは 2 年
イズ利用者の推移を図 1,図 2 に示す.
次前期必修科目として,残る 1 つのコースでは 2
― 74 ―
日本科学教育学会研究会研究報告 Vol. 29 No. 4(2015)
表 1 クイズ 5 回以上利用学生 12 名のメモ利用
回数と成績
クイズ
メモ
成績
利用回数
利用回数
(100 点満点)
図 1 演習回毎のメモ用紙利用者数推移
5
5
94
7
8
93
8
9
90
8
6
88
5
8
87
7
8
87
6
8
85
7
7
83
6
6
81
8
2
66
7
1
60
5
3
0
クイズ利用回数が 5 回以上の受講生のみに限っ
図 2 演習回毎のクイズ利用者数推移
たメモ用紙使用数と成績の相関係数は約 0.63 と
なった.また,5 回以上のクイズ利用頻度の学生
5.実践結果と考察
は同程度メモ用紙を利用していることが分かる.
1)メモ用紙について
メモの配布は,学期中 13 回の演習で行った.
メモ用紙の使用およびその方法等は強制しなか
った.その結果メモ用紙の使用率は 13 回全体で
42.9%であった.
このことは,クイズを通じて自分のプログラミン
グに関する思考過程を整理することができてい
るということであると考えられる.さらに,手続
きのステップを明確に切り分け,手続きの順番を
明確にした上で一つずつのステップを順番に進
2)自習クイズの効果
2013 年度にメモ用紙上に掲載したクイズはそ
の回の演習課題の理解を確かめるものと,課題を
めることを促すことで,プログラムの構造理解を
促進し,学習支援できることの可能性を示唆する
ものである.
プログラム化する上で必要となるプログラム要
素に関するものを提供した.これは,日本語等で
6.問題解決能力の育成
記載された課題を読んで理解し,解法のためのア
ルゴリズム等を考え,実際にそれをプログラムに
置き換えていくという思考過程をナビゲートす
る想定のものであった.
以下にクイズ 5 回以上利用した学生のメモ利用
回数と成績の相関表を示す.
上記の実験検証を踏まえ,著者らは,プログラ
ム構文の理解を問う設問と,プログラムの組み立
てを問う設問との間で,吹き出しの設問を準備し,
プログラミング思考過程をメタ認知する力を育
成するということを考えた.つまり,クイズとい
うプログラムに関する直接的刺激によるのでは
なく,プログラミング作業をメタ認知し,それを
― 75 ―
日本科学教育学会研究会研究報告 Vol. 29 No. 4(2015)
可視化することが難しい現状において,まずはフ
と高める上で,フローチャートへの吹き出しの設
ローチャートの1つ1つの意味を言語化させる.
問を準備することを提案した.
今後は統合開発環境において,上記学習を可能
そこから段階的詳細の関係性を意識させ,プログ
ラミング知識の再構成を促すというものである.
とするシステムを実装化し,その効果測定を行っ
一方,我々は,従来のプログラミングの教授法
ていく.また,吹き出しによる可視化を数学学習
から脱却する1つのアプローチとして,数学思考
材でも活用することで,プログラミングの作成思
力を研くことでプログラミング作成能力が向上
考過程が高まるのか,その相関を調べる.
できるのではとの着想を得ている.そこから,プ
ログラミング作成における思考過程の構造と数
謝辞 本研究は JSPS 科研費 25381285 の助成を
学の問題解決過程との相関を調べ,数学学習材を
受けたものです。
開発することを目的としている.このことは,三
重野ら(4),がプログラム作成を支える潜在的な資
引用及び参考文献
質の1つとして,論理的思考力を挙げていること,
(1)伊藤恵,大場みち子,下郡啓夫:“プログラミ
あわせて岡本(5)が,数学の学習内容を技能レベル
ング教育における紙使用による学習者の思考促
ではなく思考レベルで構造化することができれ
進と調査の試み”,教育システム情報学会研究報
ば,より一般的レベルでの思考へ転移する可能性
告 28(6), 59-64, 2014-03
があることを指摘していることに依拠している.
(2) 新開純子,宮地功:
“プログラミング学習支援
これらのことから,数学学習によって論理的思
システムを用いた入門教育の実践”,日本工学教
考力を高め,プログラマの資質開発を行うことで
育論文誌 33(Suppl.),5-8,2009
きるとするものである.その着想をもとに,第一
(3) 宮田仁,大隅紀和,林徳治:” プログラミン
著者及び第二著者は,論理的思考力育成のための
グの教育方法と問題解決能力育成との関連
数学の作問に Piaget の論理数学的知能の発達理
-Press−oriented Approach と Content−oriented
論を援用する視点を示している(6).
Approach との比較を通して-”, 日本教育情報学
一方,吉野ら(7)は,大学生を対象に,数学学習
会学会誌 12(4), 3-13, 1997
時に吹き出しを用いることがメタ認知的モニタ
(4) 宮崎智子:
“プログラマ適性検査と知能検査”,
リングを促進し学習に有益な効果をもたらすか
三重野博司編著“絵ときプログラマと SE の適性
について実験検証を行った.その結果,成績下位
検査”
,オーム社,103-115,1991
群の基本問題,既習群の応用問題において吹き出
(5) 科学研究費補助金プロジェクトによる特定領
しの効果が認められたことを報告している.
域研究「数学的思考から論理的思考への転移を導
このことは,吹き出しの方法が数学学習材にお
く教授プログラムの開発」
2003 年度~2004 年度,
いて用いられることでメタ認知的モニタリング
岡本真彦,西森章子,加藤久恵,三宮真智子,高
を促進し,それがプログラミング言語習得の基盤
橋哲也,川添充
づくりへとつながる可能性を示唆するものであ
(6) 初期プログラミング教育支援のための数学問
ろう.
題作成の研究,下郡啓夫,大場みち子,全国数学
教育学会第 34 回研究発表会,2011
(7) 吉野巌,篠原宗弘,吉田典史,高坂康雅,工
7.終わりに
第二著者及び第三著者の所属大学での Java 演
藤敏夫:“数学学習における「吹き出し法」のメ
習を通して,段階的詳細の各部でのヒントの有用
タ認知的効果の検討”,北海道教育大学紀要〔教
性を明らかにした.さらにそれを問題解決思考へ
育科学編)
,第 54 巻,第 1 号,13-23,2003
― 76 ―