事例242
「主体的・対話的で深い学び」を目指すプログラミングの教育実践
東京都立神代高校 稲垣俊介先生
今回発表する授業案は、卒業生に「印象深い授業だった」と言われた授業を参考にして作りました。彼らが「印象深い」と言った授業には共通点があります。その共通点はあとで申し上げますが、その共通点がこの授業を作るヒントとなっています。
また、タイトルにある「主体的」「対話的」という言葉、さらに「深い学び」という言葉を踏まえて、その定義に基づきつつ、自らの解釈を踏まえてプログラミングの授業関連を考えました。実は、こちらの授業は、現在まだ進行中です。ですから、結果の報告というよりも、現在このように授業を行っているので、ぜひご意見をいただければ、というつもりでプレゼンをさせていただきます。
初めに自己紹介をいたします。私は東京都立高校の情報科の教員ですが、数年前、教員をしながら東北大学大学院の情報科学研究科に入学しました。
きっかけは、目の前の生徒たちに対する教育の、問題解決のため、さらに、学校現場の実践と研究を橋渡ししたい、という気持ちもありました。
大学の先生方にとって、研究は当たり前ですが、現場の高校教員にとっては、非常に敷居が高いものです。しかし、やはり現場の教員にも必要な力であろうと考え、鍛えたいと思って入学したところもあります。
昨年度、ようやく博士論文を書き上げることができました。私のような40過ぎの人間が新たなことを始めると言うのは非常に大変なことでしたが、何とか博士号を取得することができ、非常に達成感がありました。ここでいただいた学位を、ただの飾り物にすることなく、できる限り現場に生かし、さらに研究に生かしていければ、と考えています。
さらに現在、私が課題として取り組んでいることに、情報入試があります。東京都高等学校情報教育研究会には、「情報Ⅰ入試検討専門委員会」という委員会があり、多くの知見の深い先生方と語り合えるすばらしい場であり、現在その委員会の取りまとめをしています。また、情報処理学会が、情報入試検討委員会と会誌「情報処理」の編集委員会に入れていただいています。ここで得られた学びを、学校現場、先生方に広めて、現場教員と情報処理学会をつなげることができればという思いで、本日発表をいたします。
様々な場面での発表を通して
近況報告をさせていただきます。今年の3月5日に情報処理学会の全国大会では、高校の教員として、情報入試にどのように取り組んでいるかということについて、そして、これからの傾向についてお話をさせていただきました。
ここでは、高校での情報教育には、大学や企業あるいは自治体等、社会全体での教育が必要であると主張をいたしました。これは、外部の専門家の力を借りることの重要性という意味で申し上げました。私の考えとしては、外部の専門家の方々には直接授業をしていただくというご協力よりも、ぜひとも我々教員を育てていただいて、授業はあくまで教員が行うべきであると考えています。
※クリックすると拡大します。
また、8月9日・10日の全国高等学校情報教育研究会の全国大会では、情報入試に関する実践の発表をさせていただきました。この研究会や都高情研は、私の実践の主軸となる研究会で、多くの情報の先生方とつながれる場であると考えています。
※クリックすると拡大します。
続いて、新聞等のメディアに取材していただいたことについて。こちらを紹介した理由については、後で述べたいと思います。
こちらは読売新聞で取材していただいた授業で、私の博士論文で検証した実践の一つです。こちらは、生徒に自分のスマホ利用時間について集計をさせるというものです。
簡単に紹介しますと、生徒からアンケートの形で自分のスマートフォンのインターネット利用時間等を集めます。それを私が回収して、名前など個人情報は一切出ない形にしたデータを、もう一度生徒に渡す。生徒は、この渡されたデータ分析をして、自分たちがどのようなインターネット利用をしているのかについて検討させるというものです。そして、利用傾向をプレゼンし、さらに発表を踏まえて個人の利用傾向について検討し、レポートを書かせるという内容です。
この実践は、「情報Ⅰ」の「データ活用」の単元に当たります。また、自分の過度なスマートフォン利用に対する問題解決の実習であるとも言えます。さらに、情報モラル教育という側面もあって、かなり欲張った実践です。
生徒は、自分や友人のデータを詳細に検討することによって、自分のスマートフォンの利用の仕方を見直すきっかけになり、無意味な利用時間の長さに気が付くことになります。
こういったデータ分析は、統計理論も含めて、高校生にとっては非常に難易度が高く、正直難しい実習の一です。しかし、なぜか生徒には受けが良くて、すごく熱心に取り組んでくれます。
※クリックすると拡大します。
もう一つ、こちらは朝日新聞で取材をしていただいたもので、「30歳のわたし」という実践です。
これは、生徒たちが30歳になったとき、自分の学校を訪問して自分の状況をプレゼンする、という設定の実践です。
生徒は自分の将来を検討して、どのような自分になっていたいかを想像します。しかし、ここで私がある解説をして、授業の雰囲気を変えます。どんな解説かと言いますと、「皆さんが目指す将来の職業、暮らしについて、現在のテクノロジーで考えていませんか。皆さんが30歳になる頃には、Society 5.0の時代になって、状況が大きく関わってるいるでしょう。皆さんが書いた将来の展望に、その視点は足りていないのではないですか」というものです。
そう言うと、生徒たちは「ああ、そうか」ということになります。30歳の彼らというと、今から約14、5年後です。そのとき、世の中は大きく変わっているはずだ、という視点が足りないわけです。
ですので、その視点を入れて自分の将来像をもう一度書き直させます。この授業は、1年間の「情報」導入に当たるもので、「情報」を学ぶ理由になる位置づけの授業の一つです。
この授業も、なぜだか大いに盛り上がり、印象深いという感想をたくさんもらっています。これにも、実は仕掛けがあります。
※クリックすると拡大します。
「自分事」を題材にする意味は
この二つの実践の共通点は、簡単に言うと、「自分事にする」ということ、教育用語で言うところの「当事者意識を持たせる」ということです。
まず、スマートフォンの利用の実践では、スマートフォンは、生徒にとって欠かせないアイテムです。その利用時間や、友達たちがどんな使い方をしているのかということは、高校生にとっては非常に気になることなのです。
そういった気持ちから、生徒はデータ分析にとても熱心に取り組みます。ちなみに、例えば世界の降水量のデータとかいった適当に持ってきたデータで分析させたとしても、興味を持つ生徒はほとんどいないです。もちろん、そういったことに興味がある生徒ならよいのですが、多くの生徒は全く興味を示しません。
彼らにとって興味があるのは、自分に関することなのです。ですから、データの分析をさせるのであれば、自分に関係することを題材にするのが大切だと考えました。
次に紹介した、「自分の将来を考えて、Society 5.0を学ぶ授業」ですが、こちらは自分の将来なのですから、興味がないはずがないわけです。高校生たちはまだ若く、自分にすごく興味があります。その自分に関係することを「情報」を学ぶきっかけにする仕掛けにして、「情報」は身近なもの、自分に関係するものだと思わせることが非常に大切なのです。
たとえ情報科の教員にとって興味深い内容であっても、結構マニアックな授業になってしまうことが多いものです。だからこそ、子どもたちにとって興味が持てるものにしなければならないという視点が、私も最近ようやくわかってきたところです。
生徒に興味を持たせるためには、スライドに書いてある通り、「自分事」にする必要があります。この先、生徒は「なぜ『情報』の勉強をするの?」と聞かれたら、きっと「大学入試科目だから」と言うようになるでしょう。そうは言っても、それに加えて「自分の将来のためになるから」とか、「自分が学びたいから」と答えてもらえるような授業にしたい。そう考えると、「自分事にする」というのは非常に大切なのかなと思います。
このSociety 5.0を踏まえて自分の将来を検討する授業は、「問題解決」や「情報デザイン」の単元として1学期の最初に実施しました。スマートフォン利用のデータ分析の授業は、3学期に行う予定です。そうすると、2学期に大きなテーマが残っていますよね。これが、今回のタイトルにもなっている「プログラミング」です。プログラミングを自分事にするというのは、なかなか難しいところですよね。それを私なりに検討し、今回発表させていただきたいと思います。
プログラミングを「主体的・対話的で深い学び」にする仕掛けとは
授業の事例に入る前に、この「主体的・対話的で深い学び」という言葉に着目したいと思います。
「主体的・対話的で深い学び」をすることによって、私が目指す「生徒にとっての自分事の授業」、すなわち当事者意識を持たせる授業になり得るのではないのか、と考えました。
ですので、難しく考えずに、「主体的・対話的で深い学び」を自分なりにひも解き、理解をして、プログラミングの授業でどのように取り扱えばよいのか、ということを考えたことを、今回発表します。
まず、「主体的」な学びは、学習指導要領の総則編にこのスライドのように定義されています。
ここでまず注目したのは、「学ぶことに興味や関心を持ち」というところです。自分事、すなわち当事者意識を持たせることは、先ほどの事例でも申し上げたように、学ぶことに興味を持ち、関心を持たせることにつながります。ですので、プログラミングの導入の授業では、まず学ぶことに興味や関心を持たせることが大切であると考えました。
次に、「自分のキャリア形成の方向性と関連付けながら」とあります。これはまさしく「30歳の私」の授業で取り上げたことです。ですので、実際にプログラミングを学ぶときには、Society 5.0に生きる、これからの人に必要な技能と理解させることが大切であると考えました。
さらに、「見通しを持って粘り強く取り組み、自己の学習活動を振り返って次につなげる」とあります。こちらについては、自分で学習を進めて、そのリフレクションを自分のために書かせるという実践が有効ではないかと考えました。
ですので、後でまた申し上げますが、毎時間の授業後に問題形式の問題を提出させると共に、自ら学んだことを書くというリフレクションを、宿題として提出するという実践につなげることとしました。
「対話的」な学びというのは、ここに「子供同士の協働」という言葉があり、さらに、「自己の考えを広げ深める」と書いてあります。ですので、こちらも互いに教え合える環境にしてあげることが大切なのではないかと考えました。
「深い学び」のキーワードとなるのは「見方・考え方」であると思います。情報科の「見方・考え方」というのは、学習指導要領では「情報を、情報とその結びつきを捉え、情報技術の適切かつ効果的な活用により、新たな情報に再構築すること」と定義されています。
つまり、プログラミングの授業であれば、これまで学んだ知識を生かして、さらに応用的なプログラミングができるということで、これをなし得るのではないのかと考えました。
プログラミングを「自分事」にする授業の導入
これらの定義に合わせながら、プログラミング教育を具体的にどのように進めていけばよいのか、ということの骨組みと、実際のカリキュラムを見て行きたいと思います。
まず「導入」では、先ほどから申し上げているように、最初に生徒が「自分事」として学ぶ理由がわかるようにしてあげることが大切であり、ここではプログラミングを自分事にするための導入を入れなければならないと思いました。
次に、自ら学び知識及び技能を身につける「展開」、そして「まとめ」として、それまでの展開などで学んだことを自分なりにまとめ、深めていく、ということになります。一般的にこのような授業単元の流れの中で大切だとされるのは「まとめ」の部分なのですが、私は「導入」だと考えています。最初に生徒自身が「これを学んでみよう」と思わない限り、主体的に学ばないと考えたのです。
情報処理の達人である先生方にとっては、プログラミングは熱心に学ぶのが当たり前に感じられるかもしれませんが、あのプログラミングの文字列を初めて見た子どもが、皆「わあ、学びたい」と思うかというと、残念ながら、たいていはそうではありません。たまにマニアックな子が大喜びすることもありますが、それは本当にごくわずかです。ですので、最初に導入で「面白そう」と思わせること、さらに「お、自分に関係がある!」と思わせることが、とにかく一番大切だと考えたわけです。
こちらが、今回の「情報Ⅰ」のプログラミング分野のカリキュラムです。できる限り主体的、対話的で深い学びになるようなものにしました。
※クリックすると拡大します。
ここからご紹介するのは、先ほども一番大切と申し上げた「導入」の部分です。この授業では、「なぜプログラミングを学ぶのか、自分なりに理解することが目的である」と生徒にストレートに伝えます。
彼らにやってもらうのは「理想のアプリを考えよう」という活動です。ここでは、10分間かけて『理想のアプリ』を自分なりに考えて、グループ内でそのアイデアを発表し合います。そして、授業のまとめで「プログラミング学習の目的」を私から伝えます。
このとき、「プログラミングを学ぶことで論理的思考力が身につきます」とか、「Society 5.0を支える人材となってもらいます」みたいなことを言ったとしても、たいていの子はポカンとして、「それがどうしたの?別にいいんだけど」ということになります。ですので、ここでは俗っぽい言い方になるかもしれせんが、素直に「本当に理想のアプリが作れるようになるかもしれない!」と思わせることの方が必要だろうと考えました。そして、「理想のアプリを考えて、次回にそういった発表をするよ」と言うことを伝えて、この授業はおしまいにします。
※クリックすると拡大します。
授業の様子をご紹介しましょう。
(※講演では授業の動画で紹介されました)
稲垣先生
今日からプログラミングをやってみようと思います。今日の授業を聞いてくれれば、この先「ちょっときつくならないだろうか」と思っても、意外に耐えられると思いますので、ぜひとも私の説明を少しメモを取って、そして今日の実習にもちょっと一生懸命になってください。
最初にWebアンケートをします。Scratch以外でプログラミングの経験がある、と言う人はYes、今回のプログラミングが初めてか、Scratch以外やったことがないよという人はNoを選んでください。用意、スタート。
このクラスは、プログラムの経験者は少し少な目ですね。
さて、今日の授業では、最初に授業の目標をお話して、次に「アプリを考えよう」という実習に入ります。次に、いつもよくやるプレゼンですが、今日は前に出て来てプレゼンするのでなく、班の中でちょっと発表してもらうという形なので安心してください(笑)。プレゼンをして、そして私からまとめをお話しする、ということになります。
皆さんは、たくさんの教科の勉強をしていますが、なぜその教科を勉強しているのかということを、自分なりの解釈で言える人はいますか。テストに出るから勉強するんじゃないんですよね。本当は大切な単元だからこそ、テストに出るのです。
でも、学ぶ理由が明確でないと、正直言って、学ぶ気持は生まれて来ないと思いますが、皆さんはどうですか?私は、確実にそうです。学ぶ理由もわからないのに学ぶことなんて、今の私は、少なくともできません。皆さんも同じではないかと思います。
というわけで、今回、皆さんに提案したいのは、自分なりの「プログラミングを学ぶ理由」を理解するということです。今日の授業は、これから皆さんは一生懸命プログラミングを勉強することになりますが、その理由を知っていただく、ということです。
というわけで、今から「アプリを考えよう」という実習をやってもらいます。皆さんには、理想のスマホのアプリについて考えてもらいます。そして、そのアプリについて、同じ班の人たちにわかりやすく伝える、ということをやっていただきます。
というわけで、今からこのプリントを使って、まず「こういうアプリがあればいいな」というアプリの紹介を書いてください。そして、そのアプリがなぜ欲しいのかも書いてください。今から10分かけて書いてください。それでは、始めてください。
(生徒はワークシートに手描きでアプリの設計図や説明を記入する)
では、これから班の中で1人2分ずつ発表してもらいます。プリントの裏面には、発表者の発表の内容をメモしてください。2分間の発表と言いましたが、恐らく2分以内で終わります。ですので、発表が終わったら、余った時間はどんどん質問してあげてください。
質問してあげることによって、さらにアイデアが生まれてきたり、どんどん変化したりしてくると思いますので、2分間はその人のために使ってあげる時間にしてください。では始めてください。
(各班の中でアプリの説明をし合う。説明を聞いて、思い思いに意見を言い合う)
はい、プレゼン終了です。拍手。
まず、授業の目標は、「自分なりの『プログラミングを学ぶ理由』を理解する」ということでした。ちなみに、「プログラミングを学ぶことによって、論理的思考力が身に付く」なんて言われていますが、皆さんは「それが、何?」という感じがしませんか。
私が思うに、一番大きいのは、やはり目の前のコンピュータやスマホを、自由にカスタマイズできるようになる、ということだと思います。
ただし、私の授業を受けるだけで好きなアプリが作り放題だ、というレベルには、残念ながら達しません。皆さんは本屋さんでコンピュータ関係のコーナーに行ったとことはありますか。小学生向け、中学生向け程度のプログラミングの本なら、おそらく皆さんが読めば、意味はわかると思います。しかし、ちゃんとアプリを作りたいと思ったら、やっぱり大人向けのプログラミングの本を読まないとダメなんです。
でもそういう本って、恐らく最初のページからちょっと理解できないと思います。見たことがある人もいるかもしれませんが、はっきり言って難しいですよ。でも、私の授業を受けた後なら、それらの本が読めると思います。
ですので、そういうレベルまでは引き上げますので、そこから先は、好きなアプリをどんどん作ってきださい。この授業ではそのようになると思ってください。
というわけで、ちょっと大げさな言い方ですが、私はプログラミングを理想の人生にするために学んでいると思います。自分の苦手なことを、コンピュータに代わりにやらせる。その空いた時間を、自分のために使うということです。
スマホを含めて、コンピュータは私たちにとって大切なパートナーであり続けるのは、揺るがないと思います。私たちはスマホやコンピュータのない世界には、もう戻れないレベルに達しています。
だからこそ、プログラミングを学ぶことによって、コンピュータをますます便利に使えるようになる。そのために、プログラミングを学ぶのだ、と考えてください。皆さんの今後の理想のために必要なものだと思えば、ちょっと学んでみようかな、という気持ちになるのではないかと思いますが、皆さんはどう思いますか。皆さんには、さらに思うところがあると思いますが、それはプリントの裏面のQRコードから入って書いてください。また、この授業に対するリフレクションを送ってください。そして、次回までの宿題として、アプリのデザイン画を書いてきてください。
次回の授業では、この書画カメラでスクリーンに映してプレゼンをしていただきます。
45秒で、さっとアプリの内容を紹介するだけのプレゼンになりますので、きょう話してくれたことをさらにかいつまんでお話しすれば十分だと思います。プログラミングの授業。きょうから始まりました。今後も頑張っていきましょう。
(動画終了)
今の動画で、実際の生徒の雰囲気も見ていただいて、このような状況で授業をやっているというようなことを、ご理解いただけたかなと思います。
授業の中で動画を使うことの意味
続いて、「展開」に当たる部分です。この部分の目標は、実際に知識及び技能を身につけさせることです。以前であれば、生徒全員に私の画面を見せて、プログラミングの説明をして、同じように操作をさせて、「全員できたね。では次に行くよ」という形式を取っていましたが、それだと残念ながら、よくできる子は「ああ、まだ次へ行けないのかな」と持て余し、一方できない子は「どうしよう、先に行っちゃった」ということになってしまいます。
さらに、わからないことがあるたびに手を上げる生徒もいて、その度に授業が止まってしまうということも、現場の先生であれば、どなたも経験があるのではないかと思います。
そこで考えたのが、説明部分を授業動画にしてしまって、それを生徒自身で自主的に学んでもらう、ということです。そして、わからないところは同じ班の人同士で教え合いながら学んでもらう、ということにしました。
動画はYouTubeにアップロードして、授業中に視聴させて各自でプログラミングの学習を進めました。生徒は自分のスピードで学ぶことができ、わかったところは飛ばしながら見ることもできますし、逆に途中でわからなくなれば、動画を止めて隣の子に聞いてみるくらいならばできます。
このような授業動画を作ると、「反転授業にすればいいんじゃないの?」と思われる方もいらっしゃると思いますが、本校の生徒はなかなか見てきてくれないので、結局授業中に見せるという形にしました。
さらに、私のこのサイトの下の部分にはリンクがはってあって、ここから課題が提出できる形になっています。課題は、このスライドの右側のように、「実際にプログラミングを行って、そのプログラミングの結果もそこに貼り付けなさい」という形式のもので、ただ動画を見て、ちょこちょこと書くだけではできない内容になっています。
さらに、リフレクションのコーナーも作ってあって、この授業で学んだことをまとめさせるところもあります。こういった宿題を毎回出すことにしています。
※クリックすると拡大します。
「協働的な学び」を作るためには工夫が必要
生徒たちは、非常に集中して取り組みます。うちの学校は、勉強はよくできるのですが、少々落ち着きのない生徒もいます。しかし、動画を利用すると、ご覧のように一生懸命取り組んでいました。
ただ、そのときは、動画を視聴させることにより上手くいったと、嬉しかったのですが、集中するあまり誰も教え合いしてくれないことに気が付きました。
授業の最初に「授業中に教え合いをしていいですよ。わからないことは友達に聞いたりしながら進めていこう」と言っているのですが、全然教え合いをしない。協働的な授業を目指していたのに、これではまずいな、と思いました。
そこでわかったのですが、友達が隣でヘッドセットを付けて集中して取り組んでいるとしたら、話しかけることなんて、そう簡単にはできないですよね。
ですので、その対策として、ラスト10分になったら「さあ、みんなでここから話し合いの時間だよ」ということにして、話し合いの時間を作る、という展開にしました。
ということにして、こちらが一昨日の写真です。実際に話し合いの時間を作ると、この写真のように、ちょっと立ち歩いて友達同士で教え合ったり質問したりすることができるようになりました。こういった時間を取ったことで、授業後のリフレクションにも「ちょっとわからないところも、いろいろ解決ができるようになった」という記述もあったので、やはりこの時間というのは大切なのだなと思いました。
この後は、応用のプログラミングを行う予定です。ここでは、サーチとソートの問題を合わせた問題を解かせて発表もする。というような内容を行う予定です。
さらにその後の授業では、最初に行った「理想のアプリを作る」という活動の中で、そのアプリのごく一部の機能を作ってみよう、という実施をするという内容を予定しています。
※クリックすると拡大します。
まとめです。この授業では、とにかく「プログラミングを自分事とする」ことに注力しました。
Society 5.0という言葉は、特に生徒たちには強調はしませんでしたが、今後それを意識して学んでいけるようにしたいと思います。
そして自ら学び、プログラムを書いてそれを振り返り、そして協働することによって自己の理解を深める。これまでの知識を生かして、プログラミングを深い学びとしていく、という内容にしたいと考えています。
発表の中でお話ししたように、「情報Ⅰ」としてのプログラミングの授業を始めたのは、今回初めてで、かつ動画を見せながら授業をやっていくという試みも、私自身にとっても初の経験です。
ですので、最終的に成功するかどうかはわかりませんが、途中の経過としてこのようなことをしていますので、皆様のご意見等をいただきながら、来年度以降さらに改善ができればと考えています。
[質疑応答]
Q.授業の様子を拝見すると、すごくたくさんの仕掛けを用意されているなと感じました。導入のところで、生徒に1人2分のプレゼンをさせて、2分に満たず余った時間を、他の生徒から質問をさせていらっしゃいましたが、それはもともとのねらいだったのでしょうか。
A.稲垣先生:
ありがとうございます。おっしゃる通り、ねらっています。
基本的に、2分の時間を与えても、絶対に余ってしまうので、そのときに聴衆側の生徒たちに質問をどんどん投げかけさせます。その質問を受けることによって、さらに自分のアイデアをふくらませるような仕掛けとして入れています。
情報処理学会高校教科「情報」シンポジウム2022秋(ジョーシン2022)講演より