初等・中等教育におけるプログラミングのための教材開発
喜家村 奨*1*1

西野 和典*2

稲川 孝司*1

三輪 吉和*3

高橋 参吉*3

帝塚山学院大学リベラルアーツ学部 *2 太成学院大学経営学部*3

NPO 法人学習開発研究所

susumu@tezuka-gu.ac.jp k-nishino@tgu.ac.jp t-inagawa@tezuka-gu.ac.jp
ymiwa@u-manabi.org takahasi-san@u-manabi.org
新学習指導要領では，「プログラミング的思考」「論理的思考力」を育成するための教育が求められている．本研究では，初等・中等教育の連続性を考慮したプログラミング教材を micro:bit を利用して，小学校(算数，理科，総合的な学習の時間)の教材，中学校技術・家庭科及び高校情報科の教材を開発する．本稿では，本研究の目標および開発した教材の概要について紹介する．また，本研究で開発した教材を利用し行った講習会から得た課題について示す．

１．はじめに学習指導要領が改訂され，将来に向けての人材育成が求められる今日，新学習指導要領で示される「プログラミング的思考」，「論理的思考」などを育成するための教育を行うためには，小学校，中学校，高校のそれぞれの校種において，教材開発や効果的な指導法が求められている．
本研究の目的は，大きく変わった新学習指導要
領の内容を中心に，小学校から中学への接続，さらに高校への接続を考慮したプログラミング的思考および情報の科学的理解を深めるために教材や指導法を検討することにある．
本稿では，開発した教材の内容の紹介，および，その教材を活用し，実施してきた講習会の経験を踏まえた本研究における課題について述べる．

２．開発教材の内容と今年度の活動
ここでは，本研究で開発する教材について紹介する．表 1 は本研究で開発する教材の概要である．
また，表 2 は開発する教材のレベルと開発状況を表している．レベル 1 は小学校（主に，算数，理科，総合的な学習の時間（以下，総合学習と記す）のプログラミング的思考に関する教材，レベル 2は中学校（技術・家庭科），レベル 3 は高校の情報科の教材である．表 2 の各レベルの欄の◎印は概ね開発済み，〇印が，今後，開発予定の教材である．
COVID-19 の影響で，先行きが不透明な状況ではあるが，今年度も，本研究で作成してきた教材を活用するために，以下のような講習を対面，遠隔の両方で企画，実施している．内容は以下の通りである．
・Scratch や micro:bit を用いたプログラミング
指導者への講習・小学校 総合学習、中学校 技術・家庭科のためのプログラミング教材の作成
・今まで作成してきた教材のオンデマンド化
今年度はさらに，上記，講習会の実施，表 2 の今後開発予定の教材制作に加え，本稿 3.で示すプログラミング的思考に基づくモデル化や段階的詳細化のための教材を開発する予定である．
表 1 教材の概要
教材の分野
プログ
ラミング
情報の基礎
アルゴリ
ズム
ネ ッ トワーク
データの活用計測と制御
理 科 ・技術
算 数 ・数学
総合学
習分類
1.1
1.2
1.3
2.12.2
2.3
3.1
3.2
4.1

教材の内容
プログラムの基本構造
配列，関数(引数，戻り値)
再帰（階乗，ハノイの塔）
数値（10 進数・2 進数）の表現
情報のディジタル化
コンピュータの仕組み
逐次探索，二分探索，交換法，直接選択法（数値，文字列）モデル化，状態遷移図
通信の基本，エラー検出，暗号通信

5.1

乱数，統計データの活用

6.1

センサーの利用と活用

7.1

電気の応用（電球の制御），信号機の制御

8.1

公倍数，四角形の種類

9.1

数当て，じゃんけんゲーム，自動販売機

表 2 各教材のレベルと開発状況
教材の分野

分類
1.1

プログラミング

小学校

中学校

高校

レベル

レベル

レベル

1

2

3○

◎

◎

○

◎

1.2
1.3

◎

2.1
情報の基礎

2.2

○

2.3
アルゴリズム

◎◎

◎

◎

○

○

3.1

◎

3.2

◎◎

ネットワーク4.1○◎

データの活用5.1○○○計測と制御

6.1

◎○

◎

理科・技術

7.1

○

◎

算数・数学

8.1

○

○

総合学習

9.1

○

○

○

３．プログラミング的思考を重視した指導法および教材の開発
図 1 の「プログラム」の作成における「モデル化」とは，「対象世界の抽象化」を行い，抽象化された対象を何らかの形（状態遷移図など）で表現することをいう．次に，モデル化された対象の動きを理解し，プログラムで表現するためには，モデルを詳細化していくこと「段階的詳細化」が必要になる．

動きを理解することが大事であることを意味する．
さらに，作成したモデルからいきなり，プログラムを記述するのではなく，プログラミング言語で表現するためにモデルを詳細化していく必要がある．例えば，自動販売機の例では，状態変数を導入し，状態を変数の値で表現するようにモデルを詳細化する．これら，モデル化，段階的詳細化手法については，計算機科学の形式的手法の分野で既に研究されている．形式的手法を用いることによって，モデル化や段階的詳細化の正しさが数学的に検証可能となる．問題は，この形式的手法をいかに小・中学校のプログラミングの指導に取り入れるかということである．難しい数学的法則を並べても児童生徒はもちろん，指導者にとっても理解が困難であろう．この問題をクリアし，実際に利用できる教材および指導法を開発することが，本研究の今後の課題である．
段階的詳細化におけるもう一つの問題はScratch や micro:bit の MakeCode Editor によるプログラミングでは，並列処理プログラムが記述できることである．例えば，自動販売機の例では，全体の振る舞い表現した状態遷移図から並列処理プログラムを導出する必要がある．これについては，形式的手法の一つであるプロセス代数の分野で研究されており，その手法を用いることで，全体の振る舞いを表す状態遷移図から，正しく動作する並列処理モデルを導出できる．この手法も参考に教材を開発できればと考える．

４．おわりに本稿では，本研究における教材開発について，現状と今後の取り組みについて示した．
謝 辞 本 研 究 は 今 年 度 よ り JSPS 科 研 費
JP20K02528 の助成を受けている．
図 1 プログラムの作成手順
例えば，プログラミング学習において，実世界の装置（自動販売機など）のしくみを理解するために，その装置のプログラムを書くことを考える．
このとき，学習者に自動販売機の振る舞いを箇条書することを指示すれば，多くの学習者はその作業を行うことは可能であろう．つまり，自動販売機の頭の中にあるイメージを自然言語で表現することは可能である．しかし，その自然言語で書かれた文章からプログラムを書くように指示すると，プログラムを作成することが難しい．これは，プ
ログラムを作る場合，いきなりプログラムを書かせるのではなく，まず対象をモデル化し，全体の参考文献(1) 喜家村奨:プログラミング指導における上流工程の重要性について，帝塚山学院大学人間科学部研究年報第 19 号，pp.15-30（2018）(2) 高橋参吉，喜家村奨，西野和典：「情報の科学」
での「micro:bit」によるプログラミング教育の可能性～小学校から高校までの一貫したプ
ログラミング教育～，日本情報科教育学会第10 回研究会報告書，pp.10-15（2018）(3) 高橋参吉，喜家村奨，稲川孝司，西野和典：「micro:bit」プログラミングで学ぶ情報技術の教材開発，教育システム情報学会第 43 回全国大会講演論文集，pp.205-206(2019)(4) 稲川孝司：micro:bit によるフルカラー LEDの制御，第 16 回情報教育合同研究会論文集