事例137
高校生はPythonでプログラムが組めるようになるのか?
神奈川県立横浜翠嵐高校 三井栄慶先生
先日出された「高校情報科『情報I』 教員研修用教材」を見ると、「情報I」のプログラミングでは「Python」を扱う可能性があるようです。
果たして、生徒たちは、Pythonをどの程度理解できるでしょうか。また、Pythonのどの部分に苦手意識を持ちやすいのでしょうか。新学習指導要領に則って授業を進めるにあたり、生徒たちの反応を知っておく必要性を感じました。そこで、「手順を組み立てる」ことを目標とした授業を12回程度で行うことにしました。
生徒たちの苦手は「繰り返し」だった
授業で取り扱った内容は、こちらになります。QRコードを読み取ると、12回分の課題が出てきますので、そちらでご覧ください。
この授業を通して感じたことを、私なりに分析してみました。
中学校で習う計測制御では、繰り返しはそれほど使いません。一方、if elseの条件分岐は、中学でも扱うので、if elseのところはほとんどできていました。生徒たちにとってみれば、Hello Wordと同じくらいのレベルです。
ところが、forによる繰り返しなったとたんに、難しくなってしまうようです。「配列の中から最小値を求める」というよくある問題を、「人には聞かないで自分で考えること」「10分間の制限時間内で答えること」という条件をつけて、まったくの抜き打ちで出題してみました。生徒たちは、forやifを使って頑張っていましたが、実行の結果が伴わないケースが、見られました。
「繰り返しが苦手」と言う生徒が多く、教員にとっては、いかに配列と繰り返しの部分をしっかりフォローして説明するかということが重要になることを実感しました。
自己評価の境目は「繰り返し」「配列」ができるかどうか
さらに、生徒の自己評価にも注目すると、配列や繰り返しをきちんと組めている子は、自己評価が高い傾向があり、反対に自己評価の低い子は、配列・繰り返しに弱いようでした。
自分自身がプログラミングについてどの程度できていると感じるかを見ると、「繰り返しながら配列にできるかどうか」というところが、分かれ道になっているようです。ここがわかっている生徒は肯定的になり、逆につまづきを感じる生徒はちょっと苦しくなって、自己評価が下がってしまうという印象がありました。
Pythonの可能性が感じられた分析結果
今回は、「プログラミングの手順を組むこと」を目標にして、自分自身で手順を組み立てることから始め、目標に近づけていく、という方法で授業を進めました。また、毎回課題の振り返りをする時間を5分程度取り、生徒たちに自由記述をしてもらいました。
感想の傾向を知るために、たくさん書いてある生徒たちの文章を、テキストマイニングにかけて分析しました。「手順を意識したか」「手順以外で学んだことはあったか」という質問に対して、「手順」「わかる」「できる」といった言葉の件数が多かったので、全体的にはPythonを使ったプログラミングについて、ポジティブにとらえていると感じます。
この取り組みについては、最終的に7割くらいの子ができるようになったのですが、これをよしとするか、不足と見るかは、意見の分かれるところかもしれません。私は、残り3割の生徒もできるようにならないと、困るのではないかと思ったので、もう少し、丁寧に授業で取り組めばよかった、という気がしています。
授業の設計は、前述の通り、12回に分けて行いました。最初の10分程度で今日取り組むことについて全員に説明し、あとは、個人に分かれてそれぞれのペースで進めます。当然、わかる子は、自分でどんどん先に進めていきます。そういう生徒は、各自スマホと向き合って、問題に取り組んでいました。
一方、わかりづらいところがあるという子には、私がその都度、解説を入れました。私の解説を聞いたら、そこの部分は自力で取り組んでみようということにしました。
12回かけて何とか終わる生徒もいれば、9回目まででクイックソートまで終わってしまったという逸材もいます。早く終わった子は、周りの子に教えてあげていいよということにしたら、進度の早い子は、人に教えることでますます力がついていくというメリットもありました。その辺りが、授業の振り返りデータの数字に出ているのかな、と思います。
この取り組みを通して、おそらくPythonは、プログラミング学習のベースになるだろうという可能性を、十分に感じさせる結果となりました。この教材は、再利用や改変も自由です。ぜひ授業で使ってみてください。そして、使ってみた感想を聞かせていただければ、大変ありがたいです。
第12回全国高等学校情報教育研究会全国大会(和歌山大会)より