生徒自身のペースで進める
プログラミングによるシミュレーションの実践と検討
第17回全国高等学校情報教育研究会全国大会（愛知大会）

神奈川県立横浜国際高等学校
情報科 鎌田高徳
2024/8/4 B3-51自己紹介
氏名：鎌田 高徳（かまだ たかなり）
教職歴（教科情報採用15年目）• 神奈川県立川崎高等学校（５年）• 神奈川県立茅ケ崎西浜高等学校（7年）プログラミング教育研究推進指定校• 神奈川県立横浜国際高等学校（３年目）学力向上進学重点校・IB校（国際科・国際バカロレアコース）

活動等• 文科省 情報Ⅰ・情報Ⅱ解説動画• 神奈川県情報部会実践事例報告会運営• 活動の詳細はWebサイトにhttps://sites.google.com/site/johoeportfolio/home2

文科省が一昨年度、生徒向けの授業動画を初制作
第３章のプログラミングの動画→問題解決のためのプログラミング

神奈川県情報部会実践事例報告会2022,横浜翠嵐高校,三井栄慶
https://drive.google.com/file/d/19y10clKo4iBb2rNMwN2Qkag-P8xwycCi/view

3

続いて文科省が昨年度、情報Ⅱの授業動画を制作
問題解決のためのコンテンツ制作や情報システムの開発

文科省 高等学校情報科 授業・研修用コンテンツ
https://www.nttls-edu.jp/joho/#jouhou-2

4今年は12月26日（木）に神奈川県情報部会
実践事例報告会オンライン開催します。
「交流は授業づくりの問題解決（柴田）」 情報部会でぜひ検索！

本校のサマープログラムで外部機関（やりたいこと支援サークル）と連携昨年度（Python）→ライフゲームなど制作
プロのプログラマーからプログラミングを学ぼう
けんちょんさん、uchanさん

今年度（Unity）→FPS制作
プログラミングでゲームを作るぜ！
もりくらげさん

やりたいこと支援サークル
https://yaritaikotoshien.com/stories/6伝えたいこと
先生がすべて学習活動をコントロールするのではなく生徒自身のペースで学ぶ情報の時間を増やしませんか？

①自ら問題を発見し ②自ら解決方法を計画し③自ら実際に実行し ④自ら評価を行い振り返る
問題解決能力を育成する授業をやってみませんか？

発表の流れ（１）情報Ⅰと情報Ⅱにおけるプログラミングによるシミュレーション（２）シミュレーションに関する事例（３）授業の実践と検討①生徒自身のベースで学習を進めるプログラミング学習教材の作成②プログラミングの題材を身近な事象に③情報Ⅰのカリキュラム再編

学習指導要領においては具体的なシミュレーションの手法の記載はない

高等学習指導要領(平成30年告示)
https://www.mext.go.jp/content/000166115.pdf

9学習指導要領解説ではいくつか事例があり問題解決のためのシミュレーションを行う必要がある

情報編高等学校学習指導要領(平成30年告示)解説
https://www.mext.go.jp/content/000166115.pdf

10

情報Ⅰの解説動画
・「学業時間と睡眠時間」の単回帰分析
情報Ⅱの解説動画
・「学業・通勤通学・休養くつろぎ・趣味娯楽と睡眠時間」の重回帰分析

文科省 情報Ⅰ・情報Ⅱ 授業・研修用コンテンツ https://www.nttls-edu.jp/joho/

11

問題の発見・解決に向けて主体的に情報と情報技術を活用し、自ら評価し改善しようとする人材育成

国立教育政策研究所 教育課程研究センター研究開発部研究開発課教育課程
教科情報の現状と展望 令和6年度神奈川県情報部会研究大会資料より

田崎調査官
12

令和５年度 神奈川県高等学校情報部会総会及び研究大会

田﨑調査官講演

教科情報の現状と展望

発表の流れ（１）情報Ⅰと情報Ⅱにおけるプログラミングによるシミュレーション（２）シミュレーションに関する事例（３）授業の実践と検討①生徒自身のベースで学習を進めるプログラミング学習教材の作成②プログラミングの題材を身近な事象に③情報Ⅰのカリキュラム再編感染者数をシミュレーションした実践事例（小松）
表計算ソフトとPythonの比較

Pythonの基礎をやって、表計算ソフトでシミュレーションをした後に、そのシミュレーションをPythonでやってみた→データの活用を学んだ後にPythonをしてみては？

表計算はオートフィルで直感的に理解できるが、プログラミングは配列とループの理解が必須→配列・繰り返しの組み合わせが鬼門

キミのミライ発見 事例236 小松一智
感染者数をシミュレーションした実践事例
https://www.wakuwaku-catch.net/jirei22236/

15

創造的写経プログラミング（春日井）
生徒がオリジナリティを考えプログラムを発展させる授業で学習したプログラムをもとに、それを発展させて新しいプログラムを作り出す→いきなりプログラムを作りなさいは難しい
いくつかプログラムのモデルが必要
キミのミライ発見 事例254 春日井優
創造的写経プログラミング授業のすすめ
https://www.wakuwaku-catch.net/jirei23254/

16

成人のプログラミング学習のハードルとその越え方（井澤）ITエンジニアの視点からこれらのハードルをどう超えるか→スモールステップで生徒が失敗を恐れずに学べる教材と指導計画を検討する

プロのエンジニアでも＋アルファ→学ぶ範囲を生徒たちに決めさせる工夫とモデルとなるプログラムを自分たちの手で改変させて学ぶ授業を

全高情研2022年 井澤哲也
成人のプログラミング学習のハードルとその越え方
https://www.zenkojoken.jp/wp-content/uploads/2022/08/R2-1_izawa.pdf

17

発表の流れ（１）情報Ⅰと情報Ⅱにおけるプログラミングによるシミュレーション（２）シミュレーションに関する事例（３）授業の実践と検討①生徒自身のベースで学習を進めるプログラミング学習教材の作成②プログラミングの題材を身近な事象に③情報Ⅰのカリキュラム再編

プログラミングにおける指導の個別化と学習の個性化

寺子屋朝日for Teachers 個別最適な学びとは？
https://terakoya.asahi.com/article/15282227

内容や協働的な学びとの関係性、実践例を紹介

19

問題解決のための情報Ⅰの授業の工夫
自由に歩き回って聞きたい人に聞いてよい・授業構成①１２分説明②１５分問題解決１③１５分問題解決２④８分振り返り・教室のレイアウト
４人１グループに変更
グループ内で協力して問題に取り組む

20

プログラミングを学ぶ環境を生徒たちに選択させる（作業用BGMを生徒から集約して流す）

ペーパーを見ながら１人でプログラミング

PDFをスマホを見ながら１人でプログラミング

席を移動して２人で相談しながらどうしようもないデバッグは先生と21
プログラミング

撮影者
河合塾 小松原さん プログラミングPythonのプログラミングの課題を12の課題をSmall Stepで設定して基本課題と応用課題に分け、各自のペースで進める
５０分×２コマで最後までできた人はオリジナルプログラム制作

５０分でほぼすべての生徒が３－６まで到達
ガチャのシミュレーションの結果から考察を書くところまでできた

１００分でほぼすべての生徒が最後まで到達
自分で探したモデルを元にガチャのシミュレーショ
ンの結果から考察を書くところまでできた

事例325 キミのミライ発見
生徒自身のペースで進める「１００連ガチャのプログラミングによるシミュレーション」～「アルゴリズムとプログラミング」の全体設計～ https://www.wakuwaku-catch.net/jirei24325/

22１回目のプログラムのみ自分ですべて写経する
２回目以降は１つ前のプログラムをコピペして資料を見ながら書き換えてプログラムを改良していく（資料には７割答えが載っているように調整した）

１つめは全てコードを書く

２つ目以降は前のプログラムをコピペして資料を参考に改変する→どこを書き換えたら実行結果がどう変わったかを意識して考えさせる

毎回、前のプログラムをコピペしていくことで、すべての課題のチェックを教師側でも行える。また生徒も前後のプログラムの比較をしやすくなる。
23

このコードを追加したら実行結果がなぜ変わったのかを意識させる
24

３－６のシミュレーションの結果についてはスプレットシートを活用（データの活用との連携）

25

発表の流れ（１）情報Ⅰと情報Ⅱにおけるプログラミングによるシミュレーション（２）シミュレーションに関する事例（３）授業の実践と検討①生徒自身のベースで学習を進めるプログラミング学習教材の作成②プログラミングの題材を身近な事象に③情報Ⅰのカリキュラム再編

生徒たちにとって身近な事象をプログラミング

文科省

情報Ⅰ

授業・研修用コンテンツ https://www.nttls-edu.jp/joho/

27

生徒たちにとって身近な事象をプログラミング micro: bit①コンピュータの制御
・音の制御
・カウントアップ・カウントダウン・ライトの点滅②変数と乱数・じゃんけん・サイコロ・おみくじ③Bluetoothによる制御
・自動点灯ライト・信号機④関数
・じゃんけんの判定
・勝った数の判定⑤時間があるクラスのみ
28
自由課題

生徒たちにとって身近な事象をプログラミング⑥⑦⑧⑨
・発表順番決め、席替え・ガチャのシミュレーション

Python⑩最後に演習課題としてシミュレーションを行った内容
29
をスライドにまとめる

シミュレーションする人にとって切実な課題を30

推しのコンサートでアリーナ席が獲得できるかシミュレーション

31

告白シミュレーション何人と付き合えるのか

32

発表の流れ（１）情報Ⅰと情報Ⅱにおけるプログラミングによるシミュレーション（２）シミュレーションに関する事例（３）授業の実践と検討①生徒自身のベースで学習を進めるプログラミング学習教材の作成②プログラミングの題材を身近な事象に③情報Ⅰのカリキュラム再編

総合的な探究の時間との兼ね合いもありデータの活用をしてからプログラミングを行うようにした

先に「データの活用」を学んで、シミュレーションした結果をグラフで読み取り方を理解「プログラミング」でシミュレーシ
ョンを行い、シミュレーションの結果をグラフ化して考察する

34

前半では反復構造を使わずにプログラミングの概念理解
後半では学んだ内容をもとにシミュレーションを行う

micro:bitでは身近な事象のプログ
ラミングを通して概念理解を行う

Pythonで鬼門となる反復構造や配列を学びシミュレーションに繋げる→それでも独自のシミュレーションができた生徒は５割程度
事例325 キミのミライ発見
生徒自身のペースで進める「１００連ガチャのプログラミングによるシミュレーション」～「アルゴリズムとプログラミング」の全体設計～https://www.wakuwaku-catch.net/jirei24325/

35これまでの実践を通して・シミュレーションは生徒の問題解決のためにする→１つの指標はでき、達成した生徒の満足度は高いができなかった生徒の意欲が著しく低下する
・教材や指導計画の改善を通してオリジナルのシミュレーションを行える割合は増えた→しかしまだ６割程度
・シミュレーションの事例の質を上げるには、数多くのモデル化とシミュレーションの事例の積み上げが必要→先輩たちの事例を積み上げ、そのモデルを元に実践させる

伝えたいこと
先生がすべて学習活動をコントロールするのではなく生徒自身のペースで学ぶ情報の時間を増やしませんか？

①自ら問題を発見し ②自ら解決方法を計画し③自ら実際に実行し ④自ら評価を行い振り返る
問題解決能力を育成する授業をやってみませんか？