事例313

身近な題材を例に繰り返し学ぶプログラミング~授業実践事例報告2023年度改訂版~

世田谷学園中学校・高等学校 神藤健朗先生

プログラミング指導の大転換!

「基本構造が同じものを繰り返す」授業をバージョンアップ!

「身近な題材を例に繰り返し学ぶプログラミング」について、事例報告をさせていただきます。各種資料に関しては、下記(※1)をご確認ください。

 

年間指導計画のコンセプトについては、東京学芸大学の高校探究プロジェクトにて、4名の先生の中の1人として事例を報告しています。(※2)

 

また「キミのミライ発見」でも、昨年の情報処理学会での発表の内容について紹介しています(※3)ので、こちらの二つの事例を確認していただければと思います。

 

(※1)授業で使用した資料

 

(※2)東京学芸大学 先端教育人材育成推進機構 高校探究プロジェクト 情報科ツールキット

 

(※3)キミのミライ発見 

事例277 学習活動を中心に据えた授業展開について~記憶に残る学習活動を繰り返し展開する~

 

事例249 身近な題材を例に繰り返し学ぶ プログラミング

 

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

 

今回はプログラミングに特化してお話しします。

 

今年度はスライドのような形で、繰り返し学ぶ仕掛けを入れて実践しているのですが、その中でも、今回は2学期に4時間かけて行ったプログラミングの内容について報告します。

 

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

 

実は、昨年度はこの内容を7時間かけて行っていました。

 

実践事例報告会やキミのミライ発見でも紹介していますけれども、昨年度の大きな反省点としては、繰り返しや条件分岐の演習時間を十分に確保できなかったということがありました。

 

また、さまざまな課題を行ったため、理解が不十分なまま作業が進んでしまったということも反省点でした。

 

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

 

今年度は扱う題材を減らして演習時間を確保

 

そこで、今年度は内容をコンパクトにまとめる形で授業実践を行っています。

 

昨年度の題材も使いつつ、アレンジもしながら、まずは「あたり1%ガチャ」を作る演習を行い、続けて「おみくじ」を作成、最後に「じゃんけん」を作っていくという流れです。4時間目にはまとめの時間を設けて、ワークシートを利用しながら、一つ一つの構文を確認するという授業構成にしています。

 

 

使用した実行環境は、PyTry(パイトライ)(※4)です。PyTryではWeb上で実行できる環境が提供されており、エラーメッセージも日本語で表示されます。

 

初学者、特に初めてプログラミングに触れる子どもたちにとっては、エラーメッセージが英語で出てきてしまうと、それだけで大きな壁になってしまう可能性があります。ですので、日本語でエラーメッセージが表示される、こちらの実行環境を使用しています。

 

(※4)https://pro-ktmr.github.io/pytry/

 

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

 

今回、3時間の授業の中で作成したプログラムは、実は基本構造はどれも一緒になっています。

 

「変数を宣言する、繰り返しの中に条件分岐を入れる、乱数を含める」といった、同一構造のプログラムを繰り返し入力していくことで、また、エラーメッセージに触れながら、問題点を修正するという活動を通して、プログラミングに触れる体験を少しでも増やそうというのが、授業の大きなコンセプトになっています。

 

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

 

ガチャのプログラミングは、第1段階から第6段階までの各段階で、実行すると小さなプログラムが完成する仕組みになっています。次の段階でプログラムを書き換えることによって、機能が追加されていく構成にしています。

 

 

おみくじのプログラミングでも、最初は2種類のおみくじしか出ないようなプログラムになっていますが、その後、種類を増やしたり、何度も連続で引いたりといった形で、発展させていく流れになっています。

 

 

じゃんけんのプログラミングにおいても、最初はコンピュータとの対戦を簡単に行うだけのものから始めて、連続で勝負するプログラムに発展させて、興味があれば、最後はそれをいろいろと改造してもらうような構成にしています。

 

 

プログラミングに触れる体験を増やすことが主体的な工夫の動機づけになる

 

今年度は以上のような流れで行いましたが、子どもたちの反応も非常に良く、うまく進められたのではないかと考えています。

 

例えばガチャのプログラミングに関しては、先に完成した生徒には「あたりの確率を変えてみようかな」とか、「ガチャを引く回数を変更してみようかな」「当たりの種類を増やしてみようかな」という感じで、乱数の修正や繰り返しの修正を行う、非常に大きな動機付けができたと思います。

 

また、おみくじのプログラミングに関しても、「おみくじの種類を増やしてみよう」とか、「くじが出る確率を変更してみよう」、あるいは「表示されるメッセージを変えて、面白くしてみよう」というように、条件分岐の条件を増やす動機付けが非常に大きく働いたという印象を持っています。

 

じゃんけんのプログラミングに関しては、条件をANDやORで組み合わせることが必須であるため、ハードルが高めになってはいますけれども、「コンピュータの手の出し方を変更してみようかな」とか、「結果がどのように変わるかな」というように、どうすればもっと面白くなるかという工夫が見受けられたかなと思います。

 

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

 

「自分のペースで、同じ内容を繰り返す」学習で苦手意識を払拭

 

本校には1学年で6クラス、約240名の子どもたちがいるのですが、各授業後に取ったリフレクションの内容を見てみると、約2割程度が「難しい」という反応を示しています。

 

ですが、動画解説を見ながら、自分で写経のようにプログラムを打ち込んだり、時には改造をしてみたりという授業では、総じて自分のペースで学習を進めることができます。

 

また、今回、子どもたちには「途中まで進んでいれば十分だよ。例えばガチャのプログラミングであれば、第3段階、第4段階ぐらいまで進んでいれば十分だよ」ということを伝えていました。

 

1時間の授業の中で第6段階まで進むのは時間的に厳しい子どもたちもいますので、「今は一からプログラミングを作ることは求めていないから、まずはプログラムを読んで、何をしているのかが理解できるようになってね」ということを伝えて、プログラミングを行わせました。

 

おみくじのプログラミングに関しても「第4段階まで行けそうなら、頑張ってやってみてね。遅い子は第3段階まででも構わないよ。そこからくじの数を増やして、改造してみてもいいよ」というふうに、ハードルをなるべく下げながら、授業を進めるように心掛けました。

 

―ですので、実は「難しい」と書いた生徒の数は、去年と比較してだいぶ少なくなっています。プログラミングに関しては、入力のスピード差が大きく影響を与えるところがありますので、自分のペースに合わせて、また、同じ内容を繰り返し行いながら、最後まで行かなくてもそれでへこむことのないようにフォローをしながら進められたことが、今年度うまくいった点かなと思っています。

 

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

 

来年度も今年度の内容を踏まえながら、最終的にはこの年間指導計画の中で、どのようにプログラミングの授業を位置付けていくかを考えていきたいと思っております。