<論文>初心者を対象としたC言語プログラミング教育における学習法改善のための基礎的研究―フローチャートとPADの学生に対する学習支援の効果比較―
6
0
0
全文
(2) 初心者を対象とした C 言語プログラミング教育における学習法改善のための基礎的研究 PAD. フローチャート. 処理 1. 処理 1. 処理 2. 処理 2. 順 次. 条件. Yes. No 分 岐. No 処理 3. 処理 1. 条件. 処理 1. 処理 2. 条件 条件. Yes. 処理 3. 処理 2. 処理 4. 処理 4 図1 フローチャートと PAD の比較 3.実験授業 3.1 プログラミング学習言語等について. 場所:横浜国立大学のコンピュータ教室. ブラウザ上で C 言語プログラミング学習が可能なサイ ト PAIZA.IO(2019)を利用する。C 言語は,スマートフ. 1回目の授業では,事前アンケートを実施し,C 言語. ォン等でのアプリ開発でよく利用されている JAVA の. プログラミングの基礎を学習した。2回目では,C 言語. 元になった言語で,構造化プログラミング言語の一つで. プログラミングの基礎の続きを学習した後,プログラミ. ある。 PAD はこのような構造化プログラミング言語によ. ング課題とそのルゴリズムをフローチャートまたは. る構造化プログラム作成技法を実践しやすくするための. PAD で表した図とともに配布し(付録1),学生にフロ. 思考の道具として開発された(二村, 1986)。. ーチャートまたは PAD のいずれかを一方を選択させて. 以下に示す第1次,第2次の実験授業を実施するにあたり, 被験者となる学生には,実験授業の趣旨とプログラミング課. 課題の解答を作成させた。また,課題の提示と解答プロ グラムの回収は授業支援システムにより行った。. 題の解答が正答か否かを成績評価に反映しないこと等を説. 表1に事前アンケート結果を示す。フローチャートについ. 明した。また,実験授業での課題の解答の説明も後日実施す. ては半数以上が多少の知見をもっているが,PAD について. ることも説明した。. はほとんどもっていないという結果であった。. 3.2 第1次の実験授業 (1)実験授業の方法. 表1 フローチャートとPADについての事前知識(人). 実験授業は2017年12月,横浜国立大学教育学部の「コ. フローチャート. PAD. ンピューティング」で,同じ受講者を対象に以下の日時. よく知っている. 1. 0. で2回実施した。. 聞いたことがある. 20. 2. 全く知らない. 15. 34. 36. 36. 対象:横浜国立大学教育学部1年次生の36人 日時:1回目 2017年12月14日 2時限目. 計. 2回目 2017年12月21日 2時限目 教育デザイン研究 第 11 号(2020 年 1 月). 82.
(3) 初心者を対象とした C 言語プログラミング教育における学習法改善のための基礎的研究 表2 学生のプログラムの評価結果(人) フローチャート. PAD. プログラム未完成. 6. 0. 文法エラー. 12. 0. 2. 0. 11. 5. 計. 31. 5. 正答率(%). 35. 100. 実行時のエラーはな いが,正答ではない 正答である. 対象:横浜国立大学教育学部1年次生の38人 日時:1回目 2018年11月22日 2時限目 2回目 2018年11月29日 2時限目 場所:横浜国立大学のコンピュータ教室 1回目の授業時に事前アンケートにより学生のフローチ ャートまたは PAD の事前知識とプログラミング経験につ いて調査した。その結果を表3及び表4に示す。表より,フ ローチャートについては8名が多少知識をもっているが,多 くは知識がないことがわかった。PAD については全員が全 く知らないことがわかった。プログラミング経験については,. 課題については,反復はアルゴリズムが複雑になるため, 短時間の学習には不向きと判断し,順次と分岐だけで構成で きる内容のものとした。 (2)実験授業の結果と考察 実験授業終了時に被験者の学生から回収したプログラム をPAIZA.IO 上で評価した。その結果を表2に示す。表 よりフローチャートを選んだ学生は 31 人に対して, PAD を選択した学生は 5 人であることがわかる。プロ グラムの評価は「プログラム未完成」,「文法エラーが あり,実行できない」,「実行時のエラーはないが,結 果が正しくない」,「実行でき,結果が正しい」の4基 準で評価した。「実行時のエラーはないが,結果が正しく ない」はプログラムを入力した後,画面上にエラーが出 ないが,実行した結果が正しくない場合を表す。正答は 「実行でき,結果が正しい」のみとなる。. 12 名がもっている程度で,C 言語プログラミングについて はほぼ全員が全くないことがわかった。これらの結果を踏ま えて,プログラミングの実験授業においてフローチャートと PAD のいずれか一方を使ってプログラムを作成する課題に 取り組むグループ分けを行った。その結果を表5に示す。こ れより,ほぼ均質なグループ分けができていると判断される。 1回目の授業では,事前アンケート実施後は,グループ分 けをしないで,フローチャートとPAD の両方を提示してプ ログラミングの基礎を学習した。 2回目の実験授業では,フローチャートグループと PAD グループとの間で情報交換が行われないよう,座席の配置も 2グループに分けてプログラム作成課題を実施した。 表3 フローチャートと PAD についての事前知識(人) PAD. フローチャート. フローチャートを選んだ学生が多かったが,正答プロ ある. 0. 0. 39%であったが,PAD は 5 人で 100%であった。このこ. 少しある. 8. 0. とから,PAD は馴染みがないためか,選択する者は少な. あまりない. 8. 0. 全くない. 22. 38. 38. 38. グラムを作成できた者は, フローチャートでは12 人で,. かったものの,プログラミング学習支援効果がフローチ. 計. ャートに比べ,高い可能性を得た。ただし,もともとプ ログラミング学習に対する高い興味関心を持っている学 生が PAD を選択した可能性が考えられるため,この結. 表4 プログラミング経験(人). 果のみで, PAD の学習支援効果が高いと断定することは. プログラミング学 C 言語プログラミ. 難しいと考えられる。. 習経験. ング学習経験. ある. 2. 0. 3.3 第2次の実験授業. 少しある. 10. 0. (1)実験授業の方法. あまりない. 5. 6. 全くない. 21. 32. 38. 38. 実験授業は2018年11月,横浜国立大学教育学部の「コ ンピューティング」で,同じ受講者を対象に以下の日時. 計. で2回実施した。 教育デザイン研究 第 11 号(2020 年 1 月). 83.
(4) 初心者を対象とした C 言語プログラミング教育における学習法改善のための基礎的研究 表5 フローチャートとPAD のグループ分け(人). 15. プログラミ フローチャートの事 フローチ PAD. ○ PAD. ング経験. 前知識. □ フローチャート. ある. 全くない. 1. 1. 少しある. 少しある. 2. 3. 少しある. あまりない. 2. 2. 少しある. 全くない. 1. 0. あまりない. 少しある. 1. 0. あまりない. あまりない. 2. 0. あまりない. 全くない. 0. 2. 全くない. 少しある. 1. 1. 全くない. あまりない. 0. 2. 全くない. 全くない. 9. 8. 19. 19. 計. 累積正答者数(人). ャート 10. 5. 0 0. 20 経過時間(分). 40. 図2 累積正答者数と経過時間との関係 図2に累積正答者数と経過時間との関係を示す。これ. 実験授業の進め方については1回目の授業は第1次実験 授業とほとんど同じである。2回目の授業では第1次実験授 業の場合と同じ課題(付録1)について,フローチャートグ. は,授業支援システムによる回収結果から受講者の解 答プログラムの提出時刻を調べ,解答開始時刻からの経 過時間ごとに累積正答者数を集計して作成した。これよ. ループには付録1のフローチャート図を,PAD グループに. り,解答開始後,20 分程度まではフローチャートによる. は同PAD 図を配布して実施した。. 正答者数が優位であるが 20 分過ぎからは PAD による 正答者数が大きく伸びている。解答開始後しばらくは,フ. (2)実験授業の結果と考察. ローチャートの知識のあるプログラミング経験者が正答プ. 学生が作成したプログラムを回収し,第1次の実験授 業と同様の方法で評価した結果を表6に示す。 これより, 正答率はフローチャートが 53%,PAD が 79%で,PAD の方が高く, 第1次の結果と概ね同様の結果が得られた。 また,フローチャートの方が文法エラーや,実行結果が. ログラムを作成できているが,その後は,プログラミング経 験のない者がPAD に基づいてアルゴリズムを理解し,正答 プログラムを作成することで,正答者数を押し上げているこ とが,事前アンケート結果を対応させることにより説明でき る。. 正しくない学生が多く,正しいアルゴリズムでプログラ. 表7 事後アンケート結果と正答者数. ムを作成するための学習支援効果が低い可能性が考えら の方が,学習支援効果があるとは断定できない。 大変役に立. 表6 学生のプログラムの評価結果(人). った. フローチャート. PAD. プログラム未完成. 1. 0. 少し役に立. 文法エラー. 4. 2. った. 4. 2. 10. 15. 全く役に立. 計. 19. 19. たない. 正答率(%). 53. 79. 計. 実行時のエラーはない が,正答ではない 正答である. PAD. フローチャート. れる。しかし,χ二乗検定の結果からは,必ずしも PAD. あまり役に 立たない. 回答者. 正答者. 回答者. 正答者. (人). (人). (人). (人). 9. 7. 7. 7. 7. 3. 6. 5. 2. 0. 4. 2. 1. 0. 2. 1. 19. 10. 19. 15. 教育デザイン研究 第 11 号(2020 年 1 月). 84.
(5) 初心者を対象とした C 言語プログラミング教育における学習法改善のための基礎的研究 このような正答者数の逆転現象について,統計的には被験. ミング学習支援効果が高い可能性が示された。. 者数が少なく有意な結果が得られたとは言えないものの,. (3)第2次実験授業において,プログラミング課題解. PAD はフローチャートに比べてアルゴリズム構造の見える. 答開始後 15 分程度までは,プログラミング経験のある. 化(二村,1986)における優位性を持っている可能性が示さ. 学生がフローチャートに基づいて正答プログラムを提出. れたと考えられる。. し,PAD の学生の正答者数を上回った。その後は,プロ. 表7に事後アンケート結果と正答者数を並べて示す。これ. グラミング経験がない学生が PAD に基づいた正答プロ. より,フローチャートでは「大変役に立った」としたものが. グラムを提出し,正答者数がフローチャートに基づく学. 全員正答できていないが,PAD では全員正答できているこ. 生を上回る結果となり, 統計的には断定できないものの,. とがわかる。このことは,学生がPAD に基づいてプログラ. プログラミング経験がない学生に対して PAD の学習支. ムのアルゴリズムを理解し,正しいプログラムを作成する支. 援効果が優位な可能性が示された。. 援効果を示しているが,フローチャートでは,アルゴリズム. これらの結果を踏まえ,フローチャートやPAD 等の学習. を正しく理解することが困難で正しいプログラムを作成す. 支援効果について被験者数を増やすなど,より信頼性の高い. る支援効果が不十分であることを示していると考えられる。. 調査が期待され,今後の課題としたい。. ただ,「あまり役に立たない」と「全く役に立たない」を 合わせた人数がフローチャートでは3人,PAD では6人で. 参考文献. あることから,PAD の方が理解に時間がかかり,理解が不. 石田真樹,桑田正行(2000):C 言語プログラミングの学習. 十分な場合にはプログラミング学習支援効果が小さいと考. 支援に関する研究-PADエディタを用いたアルゴリズム学. えられる。. 習支援システムの構築,情報処理学会研究報告コンピュー タと教育,2000-CE-058,41-48.. 4.まとめ プログラミング学習初心者を対象に構造化プログラミン グ言語の一つである C 言語を取り上げ,プログラミング課 題解決のためのアルゴリズムをフローチャートまたは. 河村一樹(1997):構造化プログラミングエディタ PADET/BL の開発と教育での適用,教育システム 情報学会誌,14,4, 151-160. 小宅直樹,鈴木裕利(2016):初心者プログラミング. PAD で表現して学生に提示し, 実験授業を通じて両者の. 教育における PAD の導入とその効果,電子情報通信. プログラミング学習支援効果を比較した。その結果は以. 学会技術研究報告,116,85,59-64.. 下のようにまとめられる。 (1)第1次実験授業では,フローチャートの事前知識. 文部科学省(2017):中学校学習指導要領解説-技術・ 家庭編.. が 20%程度で,PAD についてはほとんどいない学生に. 二村良彦(1986):PAD の開発, 日立評論, 7-11.. 対し,フローチャートまたは PAD のいずれかを学生に. 斐品正照,徳岡健一(2004):構造化チャートを用いた. 選択させてプログラミング課題を実施したところ,PAD. アルゴリズム学習支援システム, 情報処理学会論文誌,. を選択した学生は 5 名で,フローチャートより少ないも. 45,10, 2454-2467.. のの全員正答プログラムを作成できた。. Shneiderman B., Mayer R., McKey D. and Heller P. (1977):. (2)第2次実験授業では,事前アンケートにより,ほ. Experimental investigation of the utility of the detailed. ぼ均質なグループ分けをして実施した結果, PAD グルー. flowcharts in programing," Comm. ACM, 20, 6, 373-381.. プの学生の正答率は 79%で,フローチャートは 53%と. PAIZA.IO(2019): https://paiza.io/ja.. なり,統計的には断定できないものの,PAD のプログラ. 教育デザイン研究 第 11 号(2020 年 1 月). 85.
(6) 初心者を対象とした C 言語プログラミング教育における学習法改善のための基礎的研究. 付録1 課題と解答例 下のフローチャートまたは PAD のいずれか一方を参考にして,3つの変数 a,b,c を整数と して定義し,変数に相異なる任意の整数を代入する。それらの変数の値の中で中間の大きさの値 を選択し,表示するプログラムを作成しなさい。. 開始. int a,b,c,m,w. int a,b,c,m,w. a=87 b=32 c=54. a=87 b=32 c=54 w=a a=b b=w. Yes a<b. w=a a=b b=w. a<b. No b>c No. m=b. Yes. b>c. Yes. m=b. a>c No m=a. m=a printf("中間の値は%d です。",m). m=c. printf("中間の値は%d です。",m) フローチャート. m=c a>c. PAD. #include <stdio.h> int main(void){ int a,b,c,m,w; a=87; b=32; c=54; if(a<b){ w=a; a=b; b=w; } if(b>c){ m=b; } else{ if(a>c){ m=c; } else{ m=a;. }. } printf("中間の値は%d です。",m);. } 解答例 教育デザイン研究 第 11 号(2020 年 1 月). 86.
(7)
関連したドキュメント
工学部の川西琢也助教授が「米 国におけるファカルティディベ ロップメントと遠隔地 学習の実 態」について,また医学系研究科
○本時のねらい これまでの学習を基に、ユニットテーマについて話し合い、自分の考えをまとめる 学習活動 時間 主な発問、予想される生徒の姿
目標を、子どもと教師のオリエンテーションでいくつかの文節に分け」、学習課題としている。例
支援級在籍、または学習への支援が必要な中学 1 年〜 3
英語の関学の伝統を継承するのが「子どもと英 語」です。初等教育における英語教育に対応でき
経済学研究科は、経済学の高等教育機関として研究者を
具体的な取組の 状況とその効果 に対する評価.
具体的な取組の 状況とその効果 に対する評価.