総合的な学習の時間におけるプログラミング的思考の指導について～子どもの成長と生きる力の育成～
高橋 参吉 1）、稲川 孝司 2）、喜家村 奨 3）、三輪 吉和 1）、高橋 朋子 4）1）NPO 法人学習開発研究所、2）大阪府立東百舌鳥高校、 3）帝塚山学院大学、4）近畿大学教職教育部

概要2020 年度からの小学校からのプログラミング教育の実施に向けて、色々な教育実践が行われ、教員研修も行われている。筆者らも、京都府 K 市において、小学校教員を対象とした micro:bit を活用したプログミ
ング教育講座を実施した。その講座においては、プログラミング基礎、理科や総合的な学習の時間の教材を利用した研修を行った。本稿では、この研修結果を踏まえ、小学校からのプログミング教育における教材内容や指導方法について検討する。
■キーワード■
プログラミング的思考、プログラミング教育、総合的な学習の時間、教材開発、指導法
1）プログラミングの基礎

1. はじめに2020 年度からの小学校からのプログラミング教

・micro:bit の基本操作

1）

・プログラムの基礎（順次、繰返し、分岐）育の実施に向けて、色々な教育実践

2）が行われ、教員研修も行われている。
プログラミング的思考は、「自分が意図する一連の活動を実現するために、どのような動きの組合せ

2）理科（電気の応用）の教材・センサー（光、スイッチボタン）の利用
・micro:bit による LED（電球）の制御が必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく
1）

力」 と書かれている。

3. 教科におけるプログラミング教育～理科教材を例として～研修で行った小学校の理科教材を紹介する。
＜例題１＞

そこで、本稿では、筆者らが行ったプログミング

光センサ（LED）を使って明るさの値を LED に教育の研修内容を報告するとともに、初等・中等教表示するプログラムを作り、LED の部分を覆って値育へのプログラミング教育への接続性、教科（理科が変化することを確かめてみる。

や算数）での教材内容や指導方法を考察する。

＜例題2＞

また、総合的な学習の時間におけるプログミング

3Vの電池を使って電球をON/OFF する。ここで指導の重要性、子どもの成長と生きる力の育成を考は、豆電球の代わりにLED（発光ダイオード）を接えた指導方法について検討する。

続して、光センサを使ったLEDの制御を行う。実際に、電池、LEDをブレッドボードに接続して、確か

2. 小学校教員対象のプログラミング研修

める（図1）。

2019 年 8 月 8 日に、京都府 K 市において、教育委員会主催における「マイクロビット活用（プログラミング教育）講座」を実施した。市の各小学校からの教員 13 名、教育センター及び指導者側教員を含めると約 20 名の参加があり、午後 2 時間半、研修を行った。研修内容は、前半はプログラミングの基礎、後半は理科の教材の実習を行った。

図 1 micro:bit による LED の制御

1）積から考える＜例題3＞
Aスイッチを一度押すとLEDがすべて点灯し、再度押すとLEDがすべて消灯するプログラムを作成す＜ベン図＞
3 の倍数、AND（かつ）、5 のる。また、電池、LEDをブレッドボードに接続し倍数て、確かめる。

＜プログラム 1＞＜プログラムの考え方＞
図2の状態遷移図で、初期設定をs＝0とする。s＝0なら消灯、s＝1なら点灯とする。s＝0のときにボタンAを押すとs＝1になる。また、s＝1のときにボタンAを押すとs＝0にする。そして、sの状態を調べ、sが0なら「表示を消し」、sが1なら「すべてのLEDを表示」する。

for (let i = 1; i <= 100; i++) {basic.showNumber(i)if (i % 3 == 0 && i % 5 == 0) {basic.showString("FizzBuzz")} else if (i % 3 == 0) {basic.showString("Fizz")} else if (i % 5 == 0) {basic.showString("Buzz")}
else {
basic.showString("*")}}

2）和から考える＜ベン図＞
3 の倍数、OR(あるいは)、5 の倍数＜プログラム 2＞
図 2 点灯・消灯の状態遷移図＜教材内容及び指導方法＞
センサー（光、スイッチ）の利用、LED電球の制御の指導を行った後、状態遷移図も紹介している。
状態遷移図については、自動販売機の簡単な例であれば、小学校の教材としても扱え、中学校や高校への接続できる教材である。このような接続性も考慮した教材であれば、学習者の発達段階に応じて、子どもの主体的な学習を促す教材となりうる。
4. 教科におけるプログラミング教育～算数教材を例として～
FizzBuzz 問題を通して、プログラミング的思考の教育を考察する。
＜例題 FizzBuzz 問題＞
micro:bit で、1 から 100 までの数を表示するプ
ログラムで作成する。ただし、数値を表示した後、3 の倍数のときは「Fizz」、5 の倍数のときは「Buzz」、3 と 5 の両方の倍数のときは「FizzBuzz」と表示し、それ以外は「＊」と表示する。
この問題のプログラムは、一つではなく、いくつも考えられるが、つぎの3つの考え方とプログラム例を示す。

for (let i = 1; i <= 100; i++) {basic.showNumber(i)if (i % 3 == 0 || i % 5 == 0) {if (i % 3 == 0) {basic.showString("Fizz")}
if (i % 5 == 0) {basic.showString("Buzz")}} else {basic.showString("*")}}

3）個別に考える
＜ベン図＞
3 の倍数
＜プログラム 3＞for (let i = 1; i <= 100; i++) {basic.showNumber(i)if (i % 3 == 0) {basic.showString("Fizz")
if (i % 5 == 0) {basic.showString("Buzz")}} else if (i % 5 == 0) {basic.showString("Buzz")} else {basic.showString("*")}}

＜教材内容及び指導方法＞＜教材内容及び指導方法＞

3の倍数や5の倍数だけであれば、プログラムは簡子どもたちが、よく知っている題材である。最初

単であるが、FizzBuzz 問題のプログラムは、少しは、表示のみに micro:bit を利用（図 3）し、つぎ複雑となる。しかしながら、プログラミング的思考に、じゃんけんゲームの教材（図 5 の乱数でグー、の教育では、必ずしもコーディング（プログラム作チョキ、パーを表示）を実行して学ぶ。この場合、成）ができることではなく、ベン図を利用して論理micro:bit を相手にじゃんけんをしてもよい。

的に考えることも重要である。また、子どもが、多その後、例題 2（図 4）のプログラムを確認し、様な考え方があることを学ぶことも大切である。

理解できれば、チョキを追加し、グー、チョキ、パプログラムを作成する段階において、分かりやすーを表示するプログラムに変更する（図 5）。このいプログラムや効率のよいプログラム（アルゴリズようなステップごとの学習ができる教材である。

ム）を考えればよい。この学習は、小学校で難しければ、中学校での学習へつなげればよい。
また、Fizz Buzz 問題のプログラム構造は、四角形の種類（正方形、長方形、ひし形、それ以外の四角形）の問題にも適用できる。
5. 総合的な学習の時間におけるプログラミング教
育 ～じゃんけんゲームを例として～研修で行った「じゃんけんゲーム」の例を通して、総合的な学習の時間の教育について考察する。
＜例題 1＞
ボタン A を押すと「グー」、ボタン B を押すと「パー」、ボタン「A+B」を押すと「チョキ」をアイコンで表示するプログラムを作成する（図 3）。ま図 5 「じゃんけんゲーム」教材の変更

た、2 台の micro:bit にプログラムをダウンロードして、2 人でじゃんけんを行う。

6. 子どもの成長につながる教材
子どもの発達段階に応じてプログラミング思考を育成するためには、「教材を観て、自分で確認して、自らが納得する」教材が必要であり、さらに、

図 3 グー、チョキ、パーの表示＜例題 2＞
乱数（0、1）を発生させて、c が 0 の時は「グー」、c が 1 の時は「パー」をくりかえし表示する
ようなプログラムを作成する（図 4）。

学習者の主体的な学びにつながる指導方法を開発することが重要である。
じゃんけんゲームのような教材のコンセプトは、
1)教材を観て、実行して、自分で確認する。
2)教材プログラムを観て、自らが納得する。
3)教材プログラムの変更も試みて、思考する。
である。
プログラミング的思考を育成するには、この 3 つのステップが重要であり、とりわけ、「自分で確認して、自らが納得する」のステップは、プログラミ
ングの過程と結果を簡単に可視化できる micro:bitを利用することにより、実現しやすい。

図 4 「じゃんけんゲーム」の教材

また、プログラミング的思考の教育の流れ 4）について、勝敗の自動判定を組み込んだじゃんけんゲーム 3）の作成の場合は、表 1 のようになる。

表 1 プログラミング的思考の教育の流れ
教育の流れ
問題発見
（論理的に考えをすすめる）
分解（動きに分ける）
モ
デ

抽象化（記号にする）

ル化

一般化（一連の活動にする）
組み合わせ（組み合わせる）
コーディング（プログラムを作成する）
運用・評価（振り返る）

じゃんけんゲーム
じゃんけん（グー、チョキ、パー）の関係（勝敗）について考える。
グ、チョキ、パーを分かりやすいアイコンで表示する。
グ、チョキ、パーの関係（勝敗）を記号（数値の0、1、2）にする。
勝敗の判定を数式で表す。
勝敗の判定手順を考える。
ブロックのプログラミングを行う。
手順（プログラム）がよかったかを評価する。

なお、この教材は 2 人での対戦ゲームであるが、3 人の対戦型のじゃんけんゲームも用意されている
3）。学習者の問題意識が高ければ、学習者の論理的思考力を、より一層高める教材となりうる。
７．おわりに学習は、個人の願望や思いに対して予測を持ち、戦略を立て、実践を行い、修正し、新たな実践知を獲得する過程である。この学習の過程を捉えることにより、自己の成長に視点を置いた教育実践研究や学習開発の方法を検討することができる（付録 1）。
プログラミング的思考の教育において、教科における学習指導においては、教科における目標や内容があるため、教材内容や教育方法において、「実践で参考文献
1)文部科学省：小学校プログラミング教育の手引(第二版)．
http://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1403162.htm
2)未来の学びコンソシアム：小学校を中心としたプ
ログラミング教育ポータル
https://miraino-manabi.jp
3）高橋参吉、喜家村奨、稲川考司: micro:bit によるプログラミング－ブロック型から JavaScript
そして Python へ－、コロナ社（2019.9）．
4）ベネッセのプログラミング教育情報：プログラミ
ングで育成する資質・能力の評価基準（試行版）
https://beneprog.com/2018/07/13/standard/5）高橋朋子、東郷多津、西之園晴夫：教育実践者の成長過程におけるハビトゥスの概念枠、教育実践学会第 22 回研究大会（発表予定）（2019.11．
3-4）．

付録 1 ハビトゥスと教育実践について
ハビトゥスの概念を教育実践にあてはめると、・・・（省略）・・・、実践経験によって実践知として蓄積されていくものである。実践知を獲得する過程において、自己の成長が見られ、ハビトゥスによって生み出された実践行為によって、授業が変化していくと捉えることができる。
これらは、学習者の学習経験においても、同様の過程があてはまる。個人の願望や思いに対して予測を持ち、戦略を立て、実践を行い、修正し、新たな実践知を獲得する過程が学習であり、この学習の過程（付図 1）を捉えることにより、自己の成長に視点を置いた教育実践研究や学習開発の方法を検討していくことができる。の制約」が大きい。

実践での制約

一方、総合的な学習の時間においては、勿論、学習指導要領の制約はあるが、自らの予測を持ち、戦予測（仮説）

略を立て確かめることができる題材を設定できる。

修正

実践行為
（知覚、認識、判断、行為）

このような題材は、学習者の主体的な学習を促し、教科での学びと違う学びを得ることができる。一人ひとりの成長につながる総合的な学習の時間におけ記述可能な
ハビトゥス

実践知

自己の経験知るプログラミング的思考の教育は重要である。
紹介した研修教材は、つぎの Web サイトに置いて他者の経験知いる。
【 http://www.u-manabi.org/microbit/ 】

付図 1 教育実践者の学習の過程 5）