事例224

情報Ⅰを見据えたプログラミング教育

~学習者の独自設計を可能にさせたミニチュア配膳ロボットのプログラミング教材の開発と実践と評価~

佼成学園中学校・高等学校 岡野英樹先生

指導時間の不足をどうやって克服するか

 

はじめに、本校の『情報』の授業についてお話しします。

 

本校では、高校3年生で『情報の科学』2単位を履修していますが、今回ご紹介する事例は、新コース設立の関係で、高校1年生で行いました。

 

 

最初に、「『情報』の授業あるある」のお話です。

 

1つ目が、生徒の課題の速度が遅い。これはしばしば思うことです。

 

2つ目が、質問やトラブル対応に時間を取られること。これも、年に必ず1回はどこかで発生します。

3つ目が、生徒間にスキルの差があり、進捗がばらばらになること。最後に、とにかく指導時間が足りないこと。こういった状況はどの学校でもよくあることだと思います。

 

特に指導時間が足りないことは深刻で、いろいろなアイデアを出しながら改善を図っていますが、完璧ではありません。今回の発表は、本年度どのような工夫を行ったかという実践をご紹介していきたいと思います。

 

 

まず、年間カリキュラムがこちらです。

 

座学で教科書の内容を行いながら、最初にタイピング能力をまず向上させていきました。ここで行う目的として、今後課題量が多くなっても十分ついて来られるスピードを付けるためです。

 

その後、HTMLとCSSの実習を行い、2学期に入ってからはプログラミング基礎を行いました。

 

その後、プログラミング実践として配膳ロボットのミニチュア版を制作し、動かしてみました。そして後半は、さらにその配膳ロボットをカスタマイズして、そのカスタマイズした配膳ロボットのプレゼンテーションを行いました。3学期は、シミュレーションと相関分析・回帰分析の内容を行いました。

 

 

最初にキーボード入力の力をつける実習を入れる

 

初めにタイピングの実習についてお話しします。

 

先ほどもお話ししたように、今後プログラミング等で必要となるキーボード入力のスピードを上げることが目的です。

 

まず『マイタイピング』(※1)というwebサイトを使って学習を行いました。

 

※1 https://typing.twi1.me/game/29641

 

1周目はキーボード中段のキーだけで作られたゲームを行い、それが1秒間2タイプ(2000点)を超えられたら教員に報告させます。報告を受けたら、教員は手もとを隠す板を生徒に渡し、手もとが見えない状態で再度テストさせて、同じく1秒間2タイプ(2000点)以上打てたら合格とします。その後は中段+上段、中段+上段+下段…という形で進めます。

 

このように進めることで、個々の生徒のレベルに応じて学習でき、同じ空間で行うことによって、周りが合格していくと、自分も頑張らざるを得ない、ということでタイピングを頑張れるようになります。

 

この練習を通して、中段の合格率が97%、中段+上段の合格率が83%、そして中段+上段+下段が61%、そして中段+上段+下段+最上段が27%というところまで到達することができました。

 

 

プログラミングと問題解決を融合させた活動を行う

 

ここまでタイピングでスキルを習得させてから、2学期のプログラミングと問題解決に入ります。プログラミングだけ行うと指導時間が足りなくなる恐れがあったので、この2つの単元を合わせて行うことにしました。

 

まずPythonの基礎学習を10コマ行いました。その後、配膳ロボットの基本動作として、ボタンを押してテーブル番号を指定し、そこに配膳するという基本動作を5コマ使って学習しました。さらに応用として、配膳ロボットをカスタマイズさせてプレゼンテーションを行うまでを4コマ使って行いました。

 

 

では、Pythonをどのように教えていくのか、ということをまとめたのがこちらです。

 

普通にPythonを教えると、おそらくエラーが多発して、あちこちから質問があがってくることが予想されたので、指導順序に工夫を凝らしました。

 

まずはPython基礎学習の戦略として、Hello worldを最初にやってみるのが一般的ですが、その後はエラーの見方やエラーの種類を学習し、その後、コメントアウトの仕方もやりました。この二つを挟んで、通常のプログラミング、文法の学習に入りました。

 

 

あらかじめ発生しそうなプログラミングのエラーの種類と対応を身に付けておく

 

エラーの見方で行ったのは、正しく動くプログラムとちょっと間違ったプログラムを提示して、どこが間違ったのかを考えさせるということです。

 

例えばこのプログラムでは、右側6行目の「display.croll」という部分が間違っています。この場合、実際に走らせると「attribute error(属性エラー)」となります。

 

※クリックすると拡大します。

 

そして、プリントに6行目の「croll」が誤りで、「scroll」が正しいということを記入する、という形でエラーの見方・直し方に関して1コマ割いて行いました。

 

 

この「attribute error」以外にも様々なエラーがあります。これを一通り体験させてみて、こういう場合はどのようなエラーになるのかということを、まず理解させました。

 

プログラムを書くと、どうしてもエラーが多発しますが、これを行うことによって、極力エラーへの嫌悪感を取り除きたいという狙いがありました。

 

 

エラーの種類を学習した後、今度はコメントアウトの学習を行いました。

 

プログラミングの学び始めでは、エラーが出た場合、一度書いたプログラムを消そうとしてしまいます。ただ、そうしてしまうと、再度その部分が必要になったときに、再びそのコードを書くのは非常に効率が悪いので、いったん自分が書いたプログラムをコメントアウトして無効化させなさい、という指導をしていました。

 

※クリックすると拡大します。

 

具体的には、このような四則演算のプログラムで、13行目から19行目までをマウスで適当に選択し、「Ctrl + / 」を押せば、先頭に#を付けてコメントアウトさせることができます。

 

いったんコメントアウトさせた後、今度は自分の走らせたい部分にカーソルを合わせて、アンコメントを行います。

 

ここでは、「a+b」を計算させたければ、このように13行目にカーソルを合わせて、「Ctrl + / 」と押せばアンコメントすることができ、この部分だけを実行させることができます。

 

実は、このプログラムの中で、17行目の「a+e」を計算すると、エラーになってしまいます。ここに関しても、どんなエラーが出るのかに気付かせることを狙いとしています。

 

※クリックすると拡大します。

 

前回の復習に積み上げる形で次に進む。プリントもレベル別に準備

 

このように、まずエラーやコメントアウト、アンコメントについて学んだ後、通常のプログラミングの学習を行います。プリントNo.10まで行う中で、極力前回の内容を復習に持ってきて、少しずつ内容をふくらませながら教えていくという形を取りました。

 

また、どうしても操作上の質問が多くなるので、『SKYMENU』(※2)など授業支援ソフトを使いながら、画面上で机間巡視をする形で指導しました。

 

 ※2 https://www.skymenu-class.net/

 

※クリックすると拡大します。

 

もう一つ問題になるのが、生徒のスキルの差の吸収です。

 

どうしてもスキルにレベル差が出てしまうので、プリントもレベル1からレベル3まで設けました。レベル1は、いわゆる写経レベルの問題です。それをまずやってみて、その後、自分で少し考えてプログラムを改変したりするような問題がレベル2、そしてレベル3はよくできる生徒向けの問題を用意しました。

 

 

ステップのクリアを繰り返すことで生徒のモチベーションを上げる。「どのステップまでできたか」で評価。

 

これらの10コマが終わった後、配膳ロボットのプログラミングに入りました。

 

プログラミングでより実践的な近未来をイメージするために、配膳ロボットを教材としました。個人的には、プログラミング的思考力の中で重要なのは「分解」の考え方であると思っているので、この部分を鍛える教材を作りました。

 

具体的には、まずは配膳ロボットを真っすぐ走らせます。それができたら、今度はライントレースしてみる。それができたら、今度は配膳テーブルの番号をセットするプログラムを書くという形です。

 

プログラムというのは、どんどんふくらませながら完成形に近づいていくので、その辺りの目標を、3番目の「目標を小さく分割して、小目標のクリアを繰り返していく」ことで、鍛えました。

 

ハードウエアの場合、目標をクリアしていくことによって、生徒たちのモチベーションが目に見えて上がり、これによって、実際に多くの生徒が基本編を終えることができました。

 

 

この活動の評価に関しては、「目標に準拠した評価」を行っていました。ここに挙げたStep1からどこまでクリアしたか、ということを評価ポイントとしました。

 

※クリックすると拡大します。

 

自分の作りたい機能を選んでカスタマイズ。評価はルーブリックで行う

 

基礎編が終わったら、配膳ロボットのカスタマイズ編に進みます。先ほどのロボットに、180度サーボモーター、低速モーター、液晶ディスプレー、LEDの中からどれか1つを使ってカスタマイズを行いなさいという提案をしました。

 

そして、配膳ロボットのベンチャー企業の社長・副社長になったつもりで、それを制作し、プレゼンテーションするという形で行いました。

 

 

発表は一人ひとり前に出て発表すると、どうしても授業時間が足りなくなるので、iPadで発表動画を撮って提出という形式で行いました。これによって授業内での発表時間を削ることもでき、非常によかったと思います。また、動画の共有を行うことで、気になる友達の発表も見られるようにしました。こちらのカスタマイズ編に関しては、ルーブリック評価という形で評価を行いました。

 

※クリックすると拡大します。

 

最初に挙げた情報科の授業の問題点についてまとめます。

 

生徒の課題の速度が遅いという点に関しては、前もってタイピングを行ってスキルを上達させました。

 

質問やトラブル対応に時間を取られるということに関しては、事前にエラーの種類を教えていき、さらに『SKYMENU』などの授業支援ソフトで机間巡視をしながら対応するという方法を採りました。

 

生徒間のスキルの差があり、進捗がバラバラということに関しては、レベル別問題を作り、スキルの差を吸収しました。そして最後の、指導時間が足りないということに関しては、複数の単元を同時に扱う授業を行いました。本研究のいろいろな授業プリント等に関しては、下記の報告書をご覧いただければと思います。

 

東京都高等学校情報教育研究会 事例発表より