|
|
教育実践例 |
|
|
|
|
情報の科学的理解と論理的思考能力の育成 −Squeak e-Toys とロボットを用いた授業実践−
|
|
清教学園中・高等学校 竹中 章勝
|
|
|
1.はじめに |
一般的に敬遠されがちなプログラミングであるが,学習者同士が互いに学び合いながら,論理的な思考を身に付けていく授業として取り入れている。本稿ではその実践の内容と課題について報告する。
本校では高校1年生を対象に「情報A」を2単位で開設している。生徒のほぼ全員が大学受験を目指す普通科の学校である。
|
|
|
2.年間の授業展開 |
「情報A」では,次のような年間授業計画で授業を展開した。
1)1学期:シンキングメソッドと表現
自己紹介をテーマに,ブレーンストーミング,KJ法,MindMap手法とつなげ,論理的に情報をとらえ,整理し,文章を構成する方法を自ら考えながら体得していく。
これらの手法は文章を論理的に記述することはもちろん,周囲の友人とコミュニケーションをとりながら学習するための準備活動とした。当初は長文を書くことに苦手意識を持つ生徒が90%以上であったが,最終的には自己紹介というテーマで2000文字以上の文章をほぼすべての生徒が作成することができた。
2)2学期:情報編集とデザイン
PowerPointを使用してポスターを作成しながら,色の三原色や色相等の色の科学を踏まえた色の選び方,レイヤーの概念,印刷技術等を含めたデザイン理論を深めた。
3)3学期:プログラミングと制御
コンピュータ上のシミュレーション環境でのプログラミングから実際のロボットを用いたプログラミング制御へとつなげていった。
4)振り返りシート
情報科ではノートは持参させず,毎回配布する「振り返りシート」に,
・授業メモ(裏面)
・今日解った事
・今日の授業の感想
・質問
の項目を記入していくことで,学習事項をまとめる力を身に付けさせている。
4月当初は上手くまとまらないが,2学期位からは随分上手く要点をまとめはじめ,それにともなって的を得た質問が増えてくる。
|
|
|
|
3.プログラミングと制御学習の展開 |
1学期での思考方法をもとに,3学期では論理的思考能力とコンピュータの科学的理解を進める為にシミュレーション環境(Squeak e-Toys) と実際に動く台車型ロボット(Beauto Chaser)を活用した学びを進めた。
1)Squeak e-Toys
Squeak e-ToysはPCの画面上でタイル状のコマンドを組み立てることでプログラミングの原理を体験しながら学ぶことができる。
また,Squeak e-Toys上のペイントツールを使用して,生徒が自由に部品を作り出すことができる。生徒達はオリジナルの動く部品(Morph:モーフ)を作りだすことで創作意欲と当事者意識が芽生える。
2)制御
モーフは,前に進める,まわす等のコマンドボタンを一回ずつ押すごとにコマンドが実行される。
しかし,何度も押すことは面倒だという意見が生徒から出てくる。このとき,前進するのは,
前へ進む(コマンド)+10(引数)
というようにコマンド+引数で動きが決まることを理解させる。
またコンピュータは,
入力 → 制御(演算)→ 出力
の流れで制御されており,この手順をプログラムとしてコンピュータに教えるだけなのだと理解する。
引数を大きくすると一度のコマンドで沢山進み,できるだけ滑らかにカーブする為には,小さな角度の引数でまわす事でゆっくり旋回を行うことを発見する。
3)物語を具体化する
コンピュータは生徒にとって得体の知れないブラックボックスであり,学習前ではプログラミングを難しいと感じている生徒がほぼ100%であった。
そこで,単にプログラムという手順を作成するのではなく,シーモア・パパートの『マインドストーム』にあるように,数学でこれまでに学習した図形をモーフの動きで描くLOGOのタートルグラフィックのようなプログラムを作成する課題に取り組んだ。
「正方形を記入しよう」という問題では単純に,
すすむ +100
まわす +90
すすむ +100
まわす +90 ・・・・
という風に4回繰り返すことで比較的簡単に描けるが,正三角形を描く課題を出すとほとんどの生徒は正六角形を描くプログラムを考えてしまう。
ここで,自分がモーフになったつもりで床を歩いてみると,60度回転ではない事に気が付き,「外角だ!」と叫ぶ生徒が出てくる。「数学で学んだ知識が実際に活用できてうれしい」という感想を授業振り返りシートに書く生徒も多く現れた。
次に,条件分岐の概念を学ぶ。生徒には「プログラムは物語である」と説明し,実際に課題として
a)動物のモーフを描く
b)動物が道沿いを歩くように進む
というプログラムを作成したうえで,
c) 動物が河に落ちる前に進めるのを止める
という練習問題に取り組ませることでより定着を図った。
このような物語は生徒の苦手意識を解消し,むしろ最初は苦手意識を見せた女子生徒の方が意欲的に取り組んでいた。
4)更に自然な動物の動きへ
動物の動きといっても
進んで止まる
等の動きでは動物らしくない。そこで次の課題では,
「柵となる◯を描き,その中に昆虫を描きなさい。そしてその昆虫が柵の中を動き回るプログラムを作成しなさい」
というプログラムに取り組ませた(図1)。
▲図1 衝突判定のスクリプト
柵との衝突判定で「条件分岐:if」を学び,柵に触ったら回転して戻るというプログラムを作成。それでも同一パターンで動くので動物らしくない。そこで衝突後の回転量を「乱数」にすることでより動物らしい動きにすることができる。
このように,実際の昆虫が触覚やヒゲを使いながらセンサーのような働きをしていることや,乱数を使用する意味を知ることができる題材とした。
ここでも「( 生物分野の学習と)つながった」という感想を多数の生徒が記入していた。
5)ライントレース
次に,昆虫が道の上を外れることなく歩いて行く「ライントレース」のプログラムを作成する課題を与えた。
この段階まで来ると教員がほとんどヒントを与えなくとも,自分で考え,ほぼ独力でプログラムを完成させることができる生徒もいる。周囲の友人にヒントを聞いて自分で試してみる生徒がほとんどで,自力でプログラムができたという満足感・達成感を毎時の振り返りシートに記入する生徒が多かった。
|
|
|
|
4.ロボット制御 |
Squeak e-Toysは画面上のモーフを制御するシミュレーションであったが,次は実際に台車型ロボットを動かすことで実際の制御の構造とコンピュータの動きについての学習へとつなげた。
(1)使用機材
Vstone社から販売されているBeauto Chaserを使用することにした。Beauto ChaserはH8/Tinyマイコンを使用した台車型のロボットで,Squeak e-Toysと同様に,タイル型のプログラミング環境Beauto Builder NEOを同梱している。よってSqueak e-Toysから比較的スムーズに学習移行できる環境である。
Squeak e-Toysでは逐次説明と課題演習の繰り返しで学習を進めてきたが,Beauto Chaserを使った学びでは,構成主義の教育理論を参考に,教員ではなく学習者同士で検討しながら,グループで課題(Mission)をクリアしていくゲーム形式とした。
(2)課題設定
Mission1から順に難度を上げていく課題を設定した。
Mission1 足元のカーペットを1枚分だけ進めて止まるプログラムを作成しよう
教室に敷かれたタイル状のカーペットの上を,ロボットが移動する。まずはカーペット1枚分の端から端までの移動である。モーターをまわす時間を調整して進む量を調整する。ただし,先のe-Toysのように幾つ進めるという具体的な引数ではなく,モーターをまわす時間を何度も調整することになる。
Mission2 足元のカーペットを1枚分進み90度回転してさらに1枚分進む
1の結果を利用して移動し,90度回転し,さらに1の結果を利用して1枚分進むという構成にする。
制御を構造的にとらえ,アルゴリズムを考える方法を体得する。
実際のロボットでは,単純に90度まわすというコマンドがないため,左右のどちらかのタイヤをまわす時間を設定する必要がある。また,その時間は実際に試してみるしかなく,割合を考えながら適度な数値を効率的に導き出す必要がある。また地面とタイヤの摩擦なども影響するため,何度も考え挑戦することへとつながる。
Mission3 足元のカーペットを一周するプログラムを作成する
ここで繰り返しの概念を用いる。ただし摩擦の影響から,同じ回転時間でもまわるごとに回転角の誤差が膨らみ,正確な正方形を描きにくくなることに気がつく。
それでも生徒達はできるだけ正確な正方形を描こうと,意見を出し合いながら工夫をしていく。ここで逐次制御だけの難しさを知る。
Mission4 壁に当たる直前で止める
Beauto Chaserには赤外線センサーが装着できるので,センサー値をBeauto Builder NEOでモニターしながらプログラムできる。
まずは,赤外線センサーの仕組みを説明。2学期に「色の科学」で扱った色の波長と赤外線の関連を説明した後,ワークシートで壁とセンサーの距離ごとのセンサー値を表に記入し,グラフ化することで,閾値(スレショルド)の考え方を知る(図2)。
▲図2 ワークシート
このように色の科学や計測値のデジタル化等で学習してきた知識を実際のモデル(=ロボット)で体験することにより,生徒の理解度が増し,「(知識が)つながった」とつぶやく生徒が増えてくる。
さらにここで,PCとロボットを接続するUSBケーブルからインターフェース,メモリ,CPU,インターフェースという流れを,Beauto Chaserの実際の基盤の配置を参考にした図で説明した。「実際に使用している機材で考えると,とてもよく実感できた」という感想を得た(図3)。
▲図3 基盤配置の図
Mission4改 紙の上のラインをトレースし,GOALで止まるプログラムを作成
ロボットをあらかじめ指定した時間直進させ,その後回転,最後はセンサーを利用して停止するという複合課題である(図4)。
▲図4 Mission4改のコース
Mission5 自由課題
班独自で課題を設定し,クリアするプログラムを作成。隣の班同士で課題を出し合い,クリアし合う場面も見られた。共同で学び合う姿が見られた例である。
Mission6 最終課題
レース最後は図5のような模造紙大のコースを作り,班対抗のレースを行った。
作戦(動作アルゴリズム)を考え,同時にスタートして先にGOALした班の勝ちとする。
▲図5 Mission6のコース
今までに学習した内容をすべて思い出し,班全員で論理的に動作を考えることで他の班より早くゴールすることを目指した。摩擦の影響だけでなく,何度もトライする間にバッテリー電圧が変化しモーターの回転速度が変わってきてしまうなど,思い通りに動かない班が出てくるが,ここでも理科で学習したモーターの原理とオームの法則を実感するチャンスとなった。
|
|
|
|
5.まとめ |
さらに内容を洗練し,より短い時間でここまでの学びを終え,コンピュータ的な制御および文字によるソースコードでのプログラミングを理解する為に,今年度はArduinoを使用した学びにもつなげていきたいと考えている。
学習効果を定量的に測定する方法を開発し,授業評価を含めたパッケージ教材にする必要があると考えている。
今回の授業展開では,生徒達は1人も脱落することなく,意欲的にプログラム学習に取り組み,授業後の生徒の満足度も高かった。
またいわゆる試行錯誤的なプログラミングではなく,
・論理的に思考し具体的なプログラムの形にしていくこと
・実際の制御は摩擦や温度,光など環境の様々な因子を考えねばならないこと
・それらは理科や数学科,技術科など他の教科で学ぶ知識を駆使し,互いに連携していること
を知りながら情報科として学ぶべき項目をちりばめた学習プログラムとなった。※注1
|
|
|
|
|
|
|