情報教育

教科「情報」実践報告

Scratchで問題解決の思考を「見える化」

矢頭 勇(浜松市立高等学校 教諭)

矢頭 勇

【あらまし】

情報AでScratchを用いた授業を行った。授業実践では、生徒は日常の身近な問題の解決をアルゴリズム思考の順次・分岐・繰り返しに分割し、それをフローチャート図で図示するとともにScratchの部品を組み立てる。この授業実践をとおして生徒は、自分自身の頭の中で起きている思考活動を、視覚的に把握するとともに、問題解決の収集・分析した情報を基にした判断や解決案の提案の過程を、より効率化する効果があると期待できる。

【1】はじめに

情報Aの問題解決の単元では、情報を整理分析する過程のスキルとして表計算ソフトのIFやCOUNTIFの条件式を取り扱い、コンピュータに判断させる体験を行っている。しかし、生徒が問題を発見・明確化する、収集した情報から判断を下す、解決案を提案するなど、問題解決の各過程において、どのように考え、判断すればよいのかは示されていない。今回は、生徒が無意識のうちに解決している身近な問題の解決過程を明確にするために、Scratchを用いて思考過程を可視化する授業の実践報告をする。

【2】Scratch導入まで

2.1 Squeakでの授業実践

平成20年度1年生(情報A・2単位)に、「遊び感覚でプログラミングを体験しよう!」の目的でSqueak(1)を用いた授業を行った。2学期期末テスト終了後の4時間を使い、操作の基本から繰り返しによる図形の描画、別オブジェクトをリンクしたハンドル操作およびライントレースを体験させた。生徒の取り組みはとても良かった。しかし生徒はアルゴリズムやフローチャートに関する知識を持っておらず、自力でライントレースのアルゴリズムを考案し、プログラミングするのは難しいようであった。結果としてお手本を示し、お手本と同じものを作成させた。

2.2 研究大会「情報教育サマースクール」

平成22年度静岡県高等学校教科「情報」教育研究会研究大会で『「問題解決の処理手順の自動化」の教材としての“Scratch”』(講師:信州大学工学部 香山瑞恵先生)の講習を受け、Scratchが「情報の科学」の問題解決での教材として活用できる示唆を得た。

【3】授業実践

3.1 講義とミニ実習(4回)

平成22年度2年生(情報A)の問題解決の単元で、分析の方法の学習後に行った。アルゴリズム思考の「順次」「繰り返し」「判断(分岐)」は、Scratch画面とフローチャート図形ともにプリントで示した。フローチャート図はグループ活動時のアイデアの共有に、また制作時のプログラム設計図に用いた。

「順次」「繰り返し」「判断」を理解させる実習では、Scratchの先行事例(2)(3)から、ミニ実習、発展実習では普段無意識に判断し解決できている身近な問題を選んだ。

「順次」では、Scratchのオブジェクトを歩数と向きを指定して移動させた。「繰り返し」では、オブジェクトの移動、回転を繰り返して正方形や星形を描画させた。「判断(分岐)」では、変数の数え上げに伴い、3の倍数の時に「ワン!」と鳴かせた(世界のナベアツ)。また、この発展として、3の倍数で「ワン!」、5の倍数で「ニャー!」と鳴かせた(図1)。

次にミニ実習では2~3人のグループを作り、月名から大の月、小の月の判定の思考過程をフローチャート図で図示した。それを設計図に用いてScratchでプログラムを組み立てた。

図1 思考の違いが回答の違いとして、視覚的に把握できる例

3.2 定期テスト(評価)

筆記試験の問題で、繰り返しを用いた図形の描画、西暦から夏季・冬季オリンピック開催年を判断する問いを出題した。解答方法(図2)は、図形群と解答例を示し、コンピュータ画面上での部品組立と同じ感覚で解答が出来るように工夫した。

図2 定期テスト(筆記)の解答の方法

3.3 テスト後の発展実習(2回)

グーとグーなら引き分け、グーとチョキならグーの勝ちというじゃんけんの勝敗判定をする。これは2つの変数を用いる事をヒントに出し、各変数(グー、チョキ、パー)をどのように比較するかを考えさせた。また、さらに発展としてじゃんけん3回勝負(2回先勝)での勝敗判定も考えさせた。

表1 授業内容一覧
授業 内容
第1回
アルゴリズム基礎
オブジェクトを移動(順次)、図形を描く(繰り返し)、世界のナベアツ(3の倍数でワン!)(判断)
第2回
判断(2)
世界のナベアツ(3の倍数でワン!5の倍数でニャー!)
第3回
ミニ実習
グループ活動
「大の月、小の月を判別」の判断手順をフローチャート図で図示
第4回
ミニ実習
フローチャートを設計図にプログラミング
テスト
筆記
1:図形を描く(繰り返し)
2:西暦からオリンピック開催年(夏季、冬季)の判別(判断)
第5・6回
発展実習
じゃんけん勝敗判定
じゃんけん3回勝負の勝敗判定

【4】感想

図3 実習の様子生徒は熱心に実習に取り組み、筆記試験ではScratchのプログラミング理解を評価することができた。実践をとおして、理系生徒は3の倍数の判定を「3で割った余りが0」とする事が容易に理解できたが、じゃんけん勝敗判定で変数に文字列を入れる「変数A(グー)=変数B(グー)なら引き分け」という考えを理解するのに苦しむ傾向がみられた。文系生徒はその逆の傾向であった。

また、この実践後に、実習「高校生活の身近な問題に対する問題解決」を行った時、文系クラスのあるグループが、Scratchで「路線バスの空席状況から利用するバス路線を指示するプログラム」を自作し発表した。

今後、「社会と情報」を履修する生徒やプログラミングを学ばない生徒・文系生徒(4)にもScratchを利用し思考過程を明確化できる見通しを得た。

参考文献

  1. (1)Squeakで学ぼう
  2. (2)兼宗進、阿部和弘、原田康徳:プログラミングが好きになる言語環境、情報処理、Vol50、No.10、986-995(2009)
  3. (3)石原正雄:スクラッチアイデアブック - ゲームで遊ぶな、ゲームを作ろう!ゼロから学ぶスクラッチプログラミング、カットシステム(2009)
  4. (4)伊藤一成:Scratchを用いた授業実践報告、情報処理、Vol52、No.1、111-113(2011)

※第4回全国高等学校情報教育研究大会大阪大会要項から転載
(2012年6月掲載)