事例369
高等学校における数理・データサイエンス・AI教育の実現を目指した教材開発及び科学部情報班の歩み
大分県立大分舞鶴高校 伊藤大貴先生
統計・データサイエンスの学びを実践的に活かす場面を作りたい
今回の発表では、大学における数理・データサイエンス・AI教育を意識して、データ駆動型探究の促進を目的とした教材およびカリキュラムの開発、そして科学技術人材を育成するための科学部情報班の活躍と、その指導方法についてお話しします。
初めにこの研究発表の背景です。
近年、新たな教養として数理・データサイエンス・AI教育の充実が求められる中、特に大学教育では、この取り組みが非常に強化されています。
高校の新学習指導要領においても、統計やデータサイエンスに関する内容が重要視されており、「情報Ⅰ」「情報Ⅱ」でも、かなり充実した内容が求められていることがわかります。
2022年の大橋真也先生の研究(※1)では、「情報Ⅰ」「情報Ⅱ」の、特に「データ分の活用」「データサイエンス」に関する内容について整理されています。
ここでは、実践的な研究が不足していることや、データサイエンス分野での教員のレベルアップが、問題点として挙げられています。
また、共通テストに「情報I」が導入されたことで、学ぶ内容の最低ラインが上がり、教員のスキルアップにも間違いなくつながっているとは思いますが、一方で生徒が学びを実践的に生かす場面が非常に少ないと思います。
そこで、探究的に学びを生かしたり、生徒が自ら学んだりするための教材やカリキュラム、部活動をつくりたいと思って、今回ご紹介する実践を行いました。
SSH特別科目として、高大接続を見据えた研究スキルの育成を目指す授業・教材を開発
次に、開発した教材とカリキュラムについてお話しします。
本校はSSH指定校として21年の歴史がありますが、特にSSH特別科目では、課題研究に結び付けるために、さまざまな単元を構想しています。
情報科は、その中で全てをつなぐ教科として、高大接続を見据えた研究スキルの育成ということを目的として、さまざまな活動を行っています。
具体的には、理数科や、科学部(今年から物・化・生・地・数に加えて情報班を作りました)で、データ駆動型探究学習(統計)や、先端技術教育(機械学習など)、アカデミックライティングなど、探究活動のモデルケースの開発に取り組んでいます。
この開発にあたっては、発展的な授業のために「情報Ⅱ」の教材を探したり、自分で考案したりしています。
文部科学省の教員研修用教材(※2)に、非常に面白いものが出ていますし、総務省統計局にも総合学習のための補助教材(※3)として、実践的な教材が公開されています。
※2 https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00018.html
※3 https://www.stat.go.jp/teacher/comp-learn-04.html
※クリックすると拡大します
※クリックすると拡大します
これらの教材は非常に完成度が高く、豊富な説明や指導の流れ等が詳細に記載されており、実際に生徒が手を動かして学ぶことができます。
しかし、現場の教員がその内容を理解して指導できるのか、という問題もあります。またハード面やソフト面での制約や手順が多く、PCが必須であったり、Jupyterや統計ソフトなど、さまざまなソフトに使い慣れておく必要がある、といった問題点が挙げられます。
そこで、「情報Ⅱ」や課題研究、探究活動に接続することを意識して、1年生と2年生の、SSHの「情報I」の代替科目「情報」の授業で、こちらのような単元を設定しました。
1年生のプログラミングでは、ビジュアルイメージと思考を結び付ける経験を
1年生で実施する「データサイエンス」(1単位)では、『Data Science演習』の単元で、情報社会に関する理解や基礎的なコンピュータースキルの習得に加えて、データを用いた統計分析などの科学的な活動を行います。
また、『Code Science演習Ⅰ』では、ビジュアルイメージと思考を結び付けるプログラミングの授業を展開します。
『Data Science演習』では、ポテトの長さのような身近なデータを使って、統計学習を行いました。
また、『Code Science演習Ⅰ』では、p5.js(※4)というサービスを利用して、JavaScriptを学んでいます。
例えば、このように図を配置したものを、インクリメントを使って動かしていきます。実装したい動きが生徒のイメージと結び付きやすいので、思考が深まりやすいと思います。
具体的には、このようなコードで実装しますが、p5.jsは関数や変数を自分の頭の中で考えながら組むことができるという点が気に入っています。
実際の動作画面を見てみましょう。イメージとコードが結び付きやすいので、プログラミング的思考を自然に深めることができる、というメリットがあります。
2年生のプログラミングでは、処理の流れを可視化しながら、デバッグに重きを置く
2年のプログラミングの授業『Code Science演習Ⅱ』では、Python Tutor(※5)を使って、処理の流れを可視化しながら、デバッグに重きを置いた活動を行っています。
※クリックすると拡大します
例えばこのようなFizz Buzzのプログラムを考えさせてみました。
※クリックすると拡大します
Fizz Buzzのルールがこちらです。倍数ごとに「Fizz」「Buzz」と言い換えていく、数のゲームです。
こちらが実際にPython Tutorを動かしている画面です。
コードを1つずつ実行していく中で、配列が実装されたり、構文が回ったりします。生徒は手を動かしながら、ステップで確認することができるため、デバッグ思考を促進することができます。
また2年の情報の授業では、普通科と理数科で異なる展開をしています。
データ駆動型探究の観点では、普通科ではオープンデータから問題解決を図る『Global DataScience探究』を行っています。また、理数科では、実際にWebアプリケーションの開発を行う『Developer Coding演習』を行っています。
データ駆動型探究のためのWebアプリケーションの開発
このデータ駆動型探究活動のために、昨年度から開発に取り組んでいるeasyStatというWebアプリケーションについてご紹介します。
※クリックすると拡大します
easyStatは、ブラウザで統計処理をするWebアプリケーションで、iPad等でも動作することができます。操作方法は非常に簡単で、Excelファイルをアップロードすれば、クリックやタップで分析ができるようになっており、現在も様々な機能を実装しています。
さらに、変数を選択することで、ヒートマップや散布図行列を表示できるようにして、共通テストの問題等とも結び付けやすいように工夫しています。
また、「情報Ⅱ」への接続も意識して、多変量を簡単に機械学習にかけることができるWebアプリケーション「easy Auto ML」も開発しました。
※クリックすると拡大します
※クリックすると拡大します
特に、このスライドのような目的変数への特徴量を可視化することで分析に活用することも可能なので、生徒も実際に分析に活用しています。
これらのWebアプリケーションの開発は、GitHubとStreamlitのサービスを使って行いました。
情報分野の尖った生徒を育てるための部活指導
ここからは、今年度創部した科学部情報班の活動実績と指導方法についてお話しします。
本校では、情報分野でも尖った生徒を育てたいという思いから、科学部情報班を創部しました。Science Club Information Technology Squadを略して、「Sc!TechS」と名乗っています。活動内容は、情報学研究と競技プログラミングです。
情報学研究では、システム開発やシミュレーション、機械学習などの研究成果を学会やコンテストで発表することで、科学に貢献することを目指しています。
すでに様々な大会に出場して上位入賞を果たしているものもあり、1年目にしては結構頑張ってくれていると思います。
競技プログラミングでは、情報オリンピックを目指して思考力や数学力を鍛えています。
競技プログラミングは、決められた条件の下で与えられた問題や課題を、プログラミングを用いて解決し、その過程や結果を競うものです。本校からは、このたび女子枠で2次予選を突破して本戦に進むことができました。
このスライドのように、問題文を読んでプログラミングで一般化するというもので、結構頭を使いますが、やってみると非常に面白いです。
競技プログラミングの指導では、初めにpaizaやProgateなどで、プログラミングの基礎を徹底的に学びます。その後、実際にABC(AtCoder Beginner Contest)などに定期的に参加しながら実戦的な力を鍛えていきます。
今回はモノグサ株式会社の大槻兼資さんに指導の助言をいただき、生徒の意欲を高めました。
そうするうちに、生徒はプログラミングをゲーム感覚で楽しむようになり、昼休み中やテスト期間にもやり続けて、さすがにこちらが止めないといけないくらいのめり込んでいました。そこまでやり抜いたので、結果を出すことができたのかなと思います。
大槻さんには事前の打ち合わせやオンラインでの技術指導、そして、わざわざ大分まで来ていただいて指導してくださいました。やはり専門家からの話は生徒に大きな影響を与えることを、改めて認識しました。
様々な側面で成長や成果が表れた
最後にまとめです。
能力の変容を確認したのですが、コンビューテーショナルシンキングと統計的リテラシーの2つの尺度において、複数の項目で有意に成長を確認することができました。
※クリックすると拡大します
特に、2年生ではかなり実践的な内容を行ったため、全ての項目で有意かつポジティブな変容を確認することができ、一定の効果があったと思います。
※クリックすると拡大します
共通テスト模試の、このような単純な図表の読み取りについても高い正答率を取ることができました。
※クリックすると拡大します
また、散布図行列の問題については、当時の2年生がまだ習っておらず、やや正答率が低かったので、今回開発しているWebアプリに散布図行列に対応した相関分析の実装を行いました。
※クリックすると拡大します
また、科学部情報班の成果としては、様々なコンテストに入賞したり、全国大会に出場すること、学会に参加したりすることが生徒にとっても非常に刺激になり、さらなるモチベーションや研究につながって、興味・関心が引き出されました。
今後への課題として、カリキュラムや教材のさらなる改善、また統計的なスキルの変容の確認のための実践的なテストの開発を行っています。また、機械学習のWebアプリケーションについては、「分類」の問題に対応できる機能を実装しようと思います。
情報学研究についても。さらに頑張って指導していきたいと思っています。
また競技プログラミングについては、コミュニティを作って、全国の高校生から人材を発掘していきたいと思っています。情報学研究や探究、競技プログラミングに取り組む生徒を集めるコミュニティを作りたいと考えていますので、興味がある方は、ぜひご連絡ください。
今回のまとめです。数理・データサイエンス・AI教育の実践を意識して、体験的、探究的な学びを実現するようなカリキュラムや教材の開発を行いました。
情報技術を学んだ生徒の探究は非常に面白く、また競技プログラミングも、興味のある生徒が集まって非常に楽しく取り組んでいます。
今後もこういった活動を通して生徒の力を伸ばしていきたいと考えています。
神奈川県情報部会実践事例報告会2024オンライン オンデマンド発表より