情報科#2_プログラミングで養いたい力
関西創価高等学校 情報科の辻誠一です。
記事を書くことに少しずつ身体を慣らしていきたいと思っています。
先日、脳裏の片隅で「なにか書くことないかな」と本校の取り組みについて思いを巡らせていると、その取り組みは多岐にわたっており目まぐるしく展開されております。ひとたび書くことを後回しにして、一晩寝かせておくなんてことをしたら「そのまま忘れてしまうのでは!?どんどん書かなければ!」と焦りを感じました。さあ、今日も書いていきます。
◆「情報Ⅰ演習」開講の目的
「情報Ⅰ」という科目は、高等学校においては「必履修科目」となっており、履修しなくてはならない教科です。ちなみに単位取得が必要なわけではありませんので「必履修」と言う名前になっています。
本校でも高校1年生で2単位あります。
以前記事にも書いたように「情報Ⅰ」も大学入学共通テスト対策が必要ですが、高校1年生段階では進路が未確定な生徒が多いこと、また、大学入学共通テストを受験するのは高校3年生のため、内容をほぼ忘れてしまっている状況です。そのような状況で受験に臨ませるのはいかがなものか…と考え、今年より、「大学入学共通テスト」対策を中心とした講座「情報Ⅰ演習」を高校3年生対象に開講いたしました。
◆すべてが初めてのこと
先ほど『大学入学共通テスト』対策を中心とした講座と偉そうなことを書いてしまいましたが、今までこの世の中で、大学入学共通テスト本番の「情報Ⅰ」の問題が出題されたことはありません。当然、受験した人も一人もいません。そんな中で「対策って何をするの?」と言うのが生徒たちの実感だろうと思いますし、僕自身も何を教えたらいいのかそこまで分かっていません。
現状は、大学入試センターなどの試作問題などパイロット版がいくつか出ている程度です。そのような状況であっても、「このような問題が出ると考えられるから、そのときはこのように解くんだよ」と教えなければならないのです。
大学入試に関して、かつて様々なノウハウがある教員や予備校・塾はあるかも知れませんが、こと、「情報」に関してはそのようなことはありません。「どういった内容が出るか分かるよ」と発言する人がいるなら、お目にかかりたいですし、その人はかなり怪しい人だと思います(笑)。
とにかく、教員も生徒も手探り状態で、なんとなく形を作っていくことが大切なんだろうと思います。本来の授業は、教員が何かを教えるだけでなく、生徒からも「こういったことをして欲しい」と言う要望も踏まえて成り立つと考えています。そのような授業が展開できるといった点では、多少なりとも、大学入試を利用して、興味関心を促す「探究授業」にも繋がっているのかも知れません。
◆やはりプログラミングは苦手な生徒が多い
僕の俄かな実感として、「プログラミングの考え方を生徒たちは身に付けていないのではないか」と考え、先日はガイダンスと同時に「腕試し」と称して、回答時間15分間で「大学入学センターの試作問題第3問(プログラミング関連)」をそのまま出題してみました。解答はGoogleフォームで受け付けましたが、25点満点中、平均点は13.84点。
んー、まだまだである。
プログラミングの基本となる3つの処理【順次・分岐・反復】の基本的な構造の理解に加えて、やはり厄介なものは「読解力」です。
問題設定自体の理解や設定を「えっ、これ何言ってるの」「お金のことなんか興味ない」と拒否してしまうのであれば、その時点で試合終了です。それに加えてこの問題は「上手な払い方」という言葉があります。問題文には「上手な払い方」を「最小交換硬貨枚数」と言う支払いとお釣りの硬貨の枚数が最小となる方法を「上手な払い方」と言っていますが、「お釣りなく支払える方が上手な払い方だ」と思い込んでしまっている人は、最初から前提条件が狂ってしまっているため、問題が解けるわけありません。案外、こう言った間違いをしてしまう生徒もおります。
ですので、アルゴリズムの基本構造やプログラミング独特の記述を知ることは当然として、問題文が何を言っているか、また、問題文の言葉の定義を理解しているかどうかが重要です。つまりそれは「読解力」と言う国語的要素です。
このスキルは、例えば取扱説明書を読み取ったりするときなど実生活においても重要なことと考えます。
◆まずは手探り。そして、プログラミングから養いたい力
と言った感じでつらつら書いてしまいましたが、やはり、こう言ったものは「練習あるのみ」と言った根性論的なものも多少あります。
最初は違和感があっても、問題を解いていくうちにどんどんその考え方に慣れてくるのです。
僕がプログラミングを教える際に伝えていることです。
プログラミング言語とはコンピューターと話す言語なので、コンピューターにとってわかりやすいように書く
それは友人など他の人と話す際にも、「相手」にとってわかりやすいように話していくことの訓練である
プログラミングを学ぶことは「他者の気持ちに立って言葉を伝えていく訓練である
ちょっと飛躍した考え方かもしれませんが、人間は複雑に色々なことを考えており、時に勘違いを起こしてしまうこともあります。コンピューターは、定義さえしっかりできていれば、人間よりも間違えを起こしません。
また、人間は相手の顔色を見て、内容を理解しているのか、それとも理解していないのかを考えますが、コンピューターはより論理的に話を進めます。
であるならば、プログラミング言語を学ぶことは、「誰にとっても受け取り方に間違いがないような話し方をする訓練」と言うことができるでしょう。一方で「誰の話であっても間違いなく聞くことができる訓練」とも言えるかもしれません。
個人的には、「相手のことを知っていく粘り強さ」も重要となってくると思います。
概ね誰にでも通じる話し方・言葉を持ち合わせるということが必要です。今後、探究のことも書いていきますが、なるべく一般化された言葉でわかりやすく書くことを心がけていきたいと思います。
(というか、これまでの話が全般的にわかりやすく書かれているのかと問われてしまったら反省しかありません)
結論を申し上げると、「情報Ⅰ演習」が受験対策だけの内容に留まることがないように、その後の人生にまで活かされる内容にしていきたいです。
(その一つの例が上記のプログラミング言語を通した内容でした)
また、大学入学共通テストを利用して、「相手の言っていることも、気持ちも分かるまで粘り強く取り組む」生徒に育てていきたいと思っています。
最後に、今回この講座を受講してくれる人は現在52名です。
(タイトル上の写真の通り)
先日は60人弱の生徒が受講を希望していたような気がするのですが微減しています。もしかすると僕の話がわかりにくかったのかもしれません(笑)
とにかく、頑張ってまいります。