見出し画像

「プログラミング学習は、失敗を繰り返すことで理解が深まる」【「情報 I 」授業実践事例#3】

ライフイズテックでは、授業の導入や動機づけ、プログラミング演習の進め方など実際の授業の内容や進行方法について詳しくご紹介いただく「情報 I 」授業研究会を定期開催しています。
noteでは、先生たちによる授業ツールの活用アイデアが満載の実践事例を連載していきます。

今回は開智日本橋学園中学校・高等学校の川田孝二先生をお迎えし、中学3年時の実践的学習の事例と、授業で大切にしている視点についてお話しいただきました。



学校名:開智日本橋学園中学校・高等学校(東京都)
中学3年次に1単位を実践学習で実施(オリジナル教材)、高校2年次に1単位を知識習得として実施(Tech Lesson)


実践を通して自ら学んでもらう

本校ではカリキュラムが少し変則的になっていて、情報は中3で1単位、高2で1単位を履修します。中3で教え込んでも大学入試の頃には忘れてしまうでしょうし、そこは割り切って実践的な学習を中心に行い、高2で、ライフイズテックレッスンを活用した知識習得を目指します。

今回は中3の実践的学習の事例から、どのように導入を展開していくかをメインにお話します。
やはり「プログラミング=難しい」というイメージが先行している生徒が多いので、導入時は、その概念を覆すことを目標の一つにしています。基本的なスタンスは「自分で学ぼう」です。一方的に教師の話を聞き続けるのは結構きついですから、自分で失敗を繰り返しながら理解を深めてもらったほうが、生徒はより学びやすいのではないかと思います。

本校では、8時間の枠のうち4時間をプログラミングの練習的な実習に、残りの4時間を課題に取り組む時間にあてています。1時間目は、単元の説明をしてGoogle Colaboratoryの使い方を示した後、ゲームのサンプルコードを生徒たちに提供します。生徒たちは当然分かりませんから、「分からなくていい、とりあえずコードを入力してみよう。うまく入力できたらゲームができるからね」と声をかけます。また、最初に配布資料として、この先の授業の流れを示すスライド、サンプルコードの一覧、辞書代わりに使えるPythonの命令一覧などの資料を一括して提示しています。先を見てみたいという生徒にはどんどん見てもらおうと考えています。

授業の導入で生徒に「疑問の種」を植え付ける

生徒たちは配られたプログラムを入力するのですが、間違いがあれば当然実行できませんから、間違いを探して直してもらいます。自分で入力したプログラムが実行される喜びを味わってほしいと思っています。バグをつぶすことが初回のテーマではありますが、裏のテーマとして「疑問の種を植え付ける」というねらいもあるんです。生徒がPythonに関する疑問の種を持つことで、これから実際に教える内容を受け入れる体制ができればと考えています。
生徒たちには、「今日は全然分からなくていい、4時間練習をすれば、今回のゲームの内容は大体理解できるようになるから安心して取り組んで」と伝えています。

ちなみに、紙の資料を配るのは生徒に1行目から入力をしてほしいと思っているからです。「# Ghost Game」とあって、もうここから自分で打ってもらいます。PDFデータも配っているのですけども、コピペできないレイアウトにしています。結果として内容を確認しながら手を動かして入力してもらうかたちになりました。

授業時間の最終段階では、ゲームの改造もしてもらいます。
ここが私の授業のポイントで、自分で改造してみることで理解を深めるねらいがあります。「絶対にゲームオーバーにならないよう、無敵に改造できるよ」と話すと、中3男子は「無敵」や「裏技」といったキーワードに反応して、喜んで改造します。

授業で大事にしている四つのポイント

私が授業を通じて意識していることは4点あります。
まず「自由にさせる」ことです。「移動しながら、相談し合ってやっていい」と伝えていますし、「一人でやってもいい」とも言っています。
2つ目は、質問されたら丁寧に説明することです。最初から全部教えるのではなく、向こうが分からなくなったタイミングで丁寧に説明しにいきます。「どうにもできないぐらいプログラムを壊してしまったら私が直すから大丈夫、みんなは自由にやって」と安心感を与えれば、自由な発想や活動が生まれてくるのではないかと思います。
3つ目が疑問を投げかけることです。
一番大切な4つ目は、ゴール設定を生徒自身に決めてもらうことです。苦手意識のある生徒は「Print文の文章を変える」だけでもよくて、自分が思ったとおりの結果が出ればうれしいですよね。プログラミングとは自分の発想を具現化するための道具だと意識してほしいと思っています。

評価の観点は「どう使いこなしたか」

2時間目からの授業展開も基本は同じで、勉強したプログラムを改造して遊び倒すという流れです。冒頭にその日のテーマについて少し触れ、それに関するゲームプログラムを提示して、あとは各自で実行し、さらに改造してみるという流れです。練習の4時間は成績には反映しないので、元のプログラムが復元できなかったり、まったく違うプログラムに書き換えたりしてもOKとしています。

こういった実習を行ったあと課題を出します。4時間かけて取り組んでもらい、その成果物を評価します。「何を覚えたか」ではなく、「どう使いこなしたか」を評価するので、小テストなどは一切実施していません。課題はオリジナルゲームを作るというもので、プログラムのファイルと設計書の2点を提出してもらいます。設計書には、ゲームの仕様に加えて自分が作ったコードとその解説をまとめてもらいます。この体裁は普段の授業で配布している体裁と同様です。ここに書いてくれた解説から、生徒の理解度を確かめています。

オリジナルのゲームプログラムが書けるということは、トレースができるということです。中3の生徒たちに「Pythonと共通テストは親和性が高い」と話しても、最初はポカンとしていますが、変数の引き数の変化やプログラムの流れなどが理解できれば、受験時の共通テストのプログラミングの問題にも対応できると考えています。

高校生では共通テストの試作問題に挑戦

最初にお話ししたように、高2では、中3で体験的に学んだプログラミングについて知識の定着を図っています。やはり、知識の焼き直しは必須ですね。
昨年の高校2年生には、共通テストの試作問題を解かせてみました。その前にウォーミングアップとして、DNCLとPythonの比較もしています。

試作問題を解くにあたっては、1人でも10人でもいいのでグループを作ってもらい、対抗戦形式で行いました。時間が来たら答えを黒板に書いてもらい、多く得点できたグループが勝ちです。問題を全部終えることができたグループは1グループのみで、やはり時間が足りなかったようですが、時間切れのグループも、発表できた解答はおおむね正解していました。
まだ課題もありますが、このやり方はいいかもしれないという手応えを感じています。

川田先生、ありがとうございました!


▼Life is Tech ! Lessonについて
https://lifeistech-lesson.jp/

この記事が気に入ったらサポートをしてみませんか?