日本ソフトウェア科学会第 36 回大会 (2019 年度) 講演論文集

帰納的プログラミングの初等教育の試み
西澤 勇輝，丸山 宏

深層学習に代表される統計的機械学習は，訓練データセットに基づく帰納的プログラミングとして捉えることができる．今後帰納的プログラミングが広く社会に取り入れられる中で，初等教育から帰納的プログラミングの考え方を教えることが必要である．我々は「ものまね算」という考え方および「火星語翻訳機」というツールを通して，小学生に機械学習の仕組みを教える試みを行った．本稿では，これらを実際に使用した小学生向け体験イベントの実施結果について報告する．

Statistical machine learning represented by deep learning can be regarded as inductive programming basedon a training dataset. As inductive programming is widely adopted in society in the future, it is necessary
to teach the concept of inductive programming from primary education. We tried to teach the mechanismof machine learning to the primary school children through the idea of ”Monomane-zan (Mimicry Math)”and the tool of ”Mars word translator”. In this paper, we report on the event for elementary school children
where they experienced our tool.

代における普遍的な能力として教育課程に組み込ん

1 はじめにでいく必要を訴えた．ここで言う「プログラミング」

2016 年に文部科学省が主宰する「小学校段階におは，アルゴリズムを実行するステップを明示的に書きける論理的思考力や創造性，問題解決能力等の育成と下すタイプの通常のプログラミング（ここではルールプログラミング教育に関する有識者会議」は，議論のベースプログラミングと呼ぶ）を想定したものとい取りまとめ [6] を公表し，その中でえる．

自分が意図する一連の活動を実現するため

一方我々は，急速に進化する深層学習に代表されるに，どのような動きの組合せが必要であり，統計的機械学習（本稿では以下機械学習と呼ぶ）を，一つ一つの動きに対応した記号を，どのよう入出力の例示に基づく帰納的プログラミング技術とに組み合わせたらいいのか，記号の組合せをして捉える [3]（このパラダイムを Software 2.0 と呼どのように改善していけば，より意図した活ぶこともある [1]）．帰納的プログラミングにおいて動に近づくのか，といったことを論理的に考は，アルゴリズムのステップを明示的に書き下すことえていく力なく，入出力の例示を与えることでプログラミングををプログラミング的思考と呼び，それをこれからの時行うことになる．この意味で，上記文部科学省有識者会議が提唱する「プログラミング的思考」とは大きく

A Challenge for Teaching Inductive Programmingfrom Primary Education
This is an unrefereed paper. Copyrights belong tothe Authors.
Yuki Nishizawa, 株 式 会 社 Preferred Networks, Preferred Networks, Inc.
Hiroshi Maruyama, 株式会社 Preferred Networks, Preferred Networks, Inc.

異る思考といえる．今後，画像認識を始めとする多くの分野において，この帰納的プログラミングを含むシステム開発が増えることを考えると，初等教育におけるプログラミング教育に帰納的プログラミングの考え方を含めていくことも必要だと考える．
ルールベースプログラミングを初等教育で教える試

みは，今までも多く行われてきた（例えば [4]）
．ルー者の例としては Google の Quick, Draw †2 などがあ

ルベースプログラミングには，子どもに技術への興味り，誰かが帰納的プログラミングにより作成した画を持ってもらう目的と，論理的思考力を育むという目像分類器を体験するといったものであるが，これで的がある．一方で，ルールベースプログラミングは多は単なる体験に終わるため，技術に興味を持ってもくの子どもにとっては難しく，プログラミング，ひいらうことはできても，実際のデータセットの作成プては先進技術に対する苦手意識を与えてしまう恐れ

ロセスや問題の選び方，優れたデータセットの作りがある．そこで，ルールベースプログラミングそのも方などの機械学習の特性を理解することはできない．のが抱えている単調さやコーディングの障壁を解決することを目的として，Scratch や Viscuit 等を用いTECH PARK の「Scratch で使える拡張 AI ブロック †3 」はデータセットの作成から帰納的プログラミたプログラミング教育が広く行われている [2] [5]．

ングを体験できる数少ない教材であるが，このようにこれに対して帰納的プログラミングは，特定の目的

帰納的プログラミングのプロセスを理解しながら，そにおいてはルールベースプログラミングよりもはるかの性質やルールベースプログラミングとの違いを小に子どもたちにとって理解しやすい．例示を見てそ学生でも学べる教材が求められていると考える．

れを模倣するということは，乳幼児のころから繰り返

我々は，帰納的プログラミングの仕組みを小学生し行ってきたことだからである．例えば「スリッパ」に教える方法として，「ものまね算」という用語を用の画像認識器を考えると，ルールベースプログラミンいた説明を提案する．また，アラビア数字に対応すグを用いる場合はスリッパを認識するステップを定る 10 個の未知のシンボルを考案して「火星語の数字」義する必要があるため容易ではないが，帰納的プログとし，この判別器である「火星語翻訳機」を訓練する

ラミングではスリッパの画像の例を用意することでプロセスを通して，機械学習の一連の仕組みを体験す

認識器を訓練するため，通常のプログラミングに不慣るツールを開発した．本稿では，「ものまね算」およれなユーザーにも扱いやすい．ルールベースプログ

び「火星語翻訳機」について述べ，これらを公開イベ

ラミングに囚われず，こういった新しいプログラミン

ントにて小学生に体験してもらった実施結果についグ手法が存在することを初等教育から教えることで，て報告する．

子どもが技術によって自分自身の手で解決できる課題の幅が広がり，より自由に創造力を発揮できるよう2 ものまね算になる．また子どもの技術に対する苦手意識を薄く

機械学習は入力と出力の関係性を統計的に抽出すし，身の回りの複雑なシステムのブラックボックス化るプロセスであり，これは何らかの理想的な関数を近を避けることにもつながる．

似している，すなわち「ものまね」をしていると考え初等教育で帰納的プログラミングを教える上でのることができる．例えばシンプルな画像分類器を例

課題として，その概念を伝えることの難しさがある．に取れば，機械学習は任意の画像を正しく分類できる

多くの帰納的プログラミングの教材は機械学習技術

理想的な分類器を「ものまね」するように訓練を行っの習得を目的としているか，完全な体験型である．前者の例としては Chainer Tutorial †1 などの機械学習ている．

を解説したウェブサイトや書籍が含まれるが，多くがのまね算」という言葉を用いる．平易な言葉を用いルールベースプログラミングとの組み合わせや微分ることで，子どもにとってより親しみが湧くと同時等の数学的知識を前提とした機械学習技術の習得をに，機械学習の根本的な概念を理解しやすくなると考目的としており，まだルールベースプログラミングもえた．

学習していない小学生が使うには適さない．また後†1 https://tutorials.chainer.org/ja/tutorial.html

そこで我々は，機械学習という用語の代わりに，「もものまね算の講義では，まず足し算や引き算，掛†2 https://quickdraw.withgoogle.com/†3 https://www.techpark.jp/aiblockシート②: 考えた数字を 5 回ずつ書いてデータセットを作ろう！

シート①: 火星語の数字を考えてみよう

数字

火星語の数字を 5 回書こう

それぞれの数字に対応する火星語の数字を自由に考えてみよう

0(例)05162712345384967

図18

ものまね算の説明スライド

9け算といった法則性を入力と出力のみから子どもに

図2予想させ，次に少し複雑な関係性を予想させた後に，データセット考案用

ワークシート 1

図3

ワークシート 2

データセット作成用

このような「入力と出力のみからルールを予測する」のがものまね算であるという説明を行う（図 1）．
さらに，同様に入力と出力のデータセットを用意す• ただデータセットを作って学習するだけの作業になってしまう

ることでもっと複雑な関係性，例えば犬と猫の画像かという点が懸念される．そこで，その場で子どもに架ら画像が犬であるか猫であるかを予想するための分空の数字である「火星語の数字」を考案してもらい，類器も作ることが可能であるということを説明する．

子どもが書き取った火星語の数字のデータセットを用いて認識器を訓練するという試みを行う．講義は3 火星語翻訳機
次にものまね算の応用例として，数字認識を挙げる．数字認識を選んだ理由として，• 数字というテーマに親しみがあること• 身近な技術であること

以下のように進める．

1. 火星語数字の考案
2. データセットの作成および Web アプリによるデータセットの取り込み

3. 機械学習モデルの訓練と認識• 分類のクラス数が比較的少なく，精度が出しやすいこと

3. 1 火星語数字の考案が挙げられる．講義の冒頭では，身の回りでどのようまず児童を 10 人程度のグループに分割し，1 人 1な場所に数字認識が使われているかを小学生に問い個の「火星語の数字」を考案してもらうことで，図 2

かけ，はがきにおける郵便番号の認識や，自動車のナに示したワークシート 1 を埋めてもらう．この後でンバープレートの認識などの例を挙げてイメージを書き取りを行いデータセットを作成することを予め掴んでもらう．

伝えておくことで，シンプルな文字を書いてもらうよ

数字認識の例を示した後は，実際に「ものまね算」う促す．

を使って数字認識器を作ってみるワークショップを行う．ただし，単なるアラビア数字を用いた数字認識器では，• 目新しさに欠ける• 子どもにとってはできて当然のタスクであるため，すごさが伝わりにくい• 大人が事前に学習しておくことが可能であり，子どもが疑ってしまう

3. 2 データセットの作成および Web アプリによる取り込み
各グループで考案した火星語の数字を，数字 1 つにつき 1 人 5 個ずつ図 3 のデータセット用紙（ワークシート 2）に書き込んでもらう．データセット用紙は5 マス × 10 マスのグリッド状になっている．だいた
い 5 分くらいで書き終わることを想定したが，デー訓練は約 1 分程度で終わるよう iteration 数を制限した．訓練状況を随時確認できるよう，図 5 に示すインターフェースを作成した．
訓練完了後，児童に iPad を配布して認識体験を行ってもらう．認識精度は用いられるデータセットによるものの，事前のテストでは約 8 割〜9 割程度であった．図 6 に示すようにタブレット上で字を書き，「認識」ボタンを押すことで，認識結果が各数字ごとにスコア化されて表示されるようにした．こうする
ことで，似ている数字ではスコアが高くなることがわかり，機械学習に対する理解が進むと考えた．

図4

データセット登録のインターフェース

タセットは多いほど精度が上がるため，早く終わった子どもにはもう一枚用紙を渡して追加のデータセッ
トを作成してもらう．
このデータセット用紙には四隅に AR マーカーが描かれており，撮影した写真を OpenCV を用いて処理することで一つ一つのデータをクロッピングしコンピュータ上に取り込む．シートのレイアウトが既

図5

訓練中のインターフェース

知であるためグリッドの交点の座標は大まかに推定可能であるが，紙の歪みやレンズの特性を吸収するためハフ変換により交点の座標を補正している．デー

4 DeepCon における実施結果

タセット取り込みの様子を図 4 に示す．撮影された

東京・大手町の深層学習関連企業が開催したイベン

画像の下に，画像処理によって実際に取り込まれた画

ト DeepCon において，Preferred Networks のカフェ像が表示される．各グループごとに全員のデータをテリアでワークショップを実施した（図 7）．ワーク

取り込み，合わせて一つのデータセットとする．

ショップは 3 回に分けて実施し，参加者は各回約 10人程度だった．

3. 3 機械学習モデルの訓練と認識

ものまね算の講義の後，火星語翻訳機の講義を行っ児童側のインターフェース上で訓練ボタンを押す

た．認識精度を懸念していたが，認識に失敗してもタことで，機械学習モデルを訓練する．データオーグ

ブレット上であれば簡単に再試行できるためあまりメンテーションとして，平行移動とズームイン/アウ大きな問題にはならなかった．スコアが 100%になる

ト，Random Erasing 等の処理を挟んだ．ニューラ

ような完璧な数字を目指す子，複数の数字を並べて書

ルネットワークは訓練時間短縮のため畳み込みレイ

いてみる子，数字を点線で書いてみる子などが散見さ

ヤー 2 層の後に全結合層を入れたシンプルなネット

れ，機械学習についての理解が深まったように見受けワークを用い，畳み込みレイヤーは MNIST を用いてられた．火星語翻訳機の後にはロボットカーを用い事前に訓練を行っておきファインチューニングする．

たルールベースプログラミングと深層学習の比較を図7
図6

Deepcon における実施の様子

認識部分のインターフェース
子ども向け : ディープラーニングについて分かったか？

行ったが，今回は詳述しない．
最後に，子どもと同伴の保護者それぞれにイベント

23%の満足度についてのアンケートを取った．結果の一分かった : 77%
少し分かった : 23%

部を図 8 に示す．子どもと保護者の双方から高い満77%

足度を得られたことがわかる．

5 今後の課題分からなかった : 0%

保護者向け : 火星語の教材を子どもに授業で使わせたいか？

今回は機械学習の大枠を体験してもらうことに成功したが，その後の学びについては検討の余地がある．

とても思う : 68%

32%

例えば，機械学習で身の回りのどのような課題を解決してみたいかディスカッションをしてもらう，実際の思う : 32%

68%

機械学習のアプリケーションではどのようなデータ

思わない : 0%

セットが使われているかを考えてみるなどの「身の回り」との関連性を考えさせる方向性や，この結果を踏まえて機械学習で認識しやすい数字を考えてみる，

図8

Deepcon におけるアンケート結果の一部抜粋．子どもと保護者の双方から高い評価を得られた．

ニューラルネットワークの基礎を教えるなどの技術的な学びに繋げる方向性が考えられる．

初めにアラビア数字や他言語の数字の訓練済み認識

また，最終的には講義の趣旨を理解してくれた子ど器で遊ばせてからデータセットの作成に取り掛かっもが多かったものの，データセットの作成段階ではどてもらうと，目的意識を持って活動に臨むことができのようなものができるのかイメージできておらず，たると考えられる．

だの作業になってしまっている様子が見受けられた．

今後我々は，みらいの学びコンソーシアム †4 を通して全国の小学校にこの教材を提供し，一部の学校では 2019 年 9 月から「総合」の授業の中で利用していただく予定である．
謝辞 本イベントにご参加頂いた保護者・お子様の皆様，およびワークショップをお手伝い頂いた PreferredNetworks 社員の皆様，株式会社アフレルの皆様に深く感謝いたします．

参 考 文 献[1] Karpathy, A.: Software 2.0, (2017).

†4 https://miraino-manabi.jp/[2] Resnick, M., Maloney, J., Monroy-Hern á ndez,A., Rusk, N., Eastmond, E., Brennan, K., Millner,A., Rosenbaum, E., S. Silver, J., Silverman, B., andKafai, Y.: Scratch: Programming for All, Commun.
ACM, Vol. 52(2009), pp. 60–67.
[3] 丸山宏: 機械学習工学に向けて, 日本ソフトウェア科
学会第 34 会大会, 2017.
[4] 久野靖, 和田勉, 中山泰一: 初等中等段階を通した情報教育の必要性とカリキュラム体系の提案, 情報処理学会論
文誌教育とコンピュータ（TCE）, Vol. 1, No. 3(2015),
pp. 48–61.
[5] 原田康徳, 勝沼奈緒実, 久野靖: 公立小学校の課外活動における非専門家によるプログラミング教育, 情報処
理学会論文誌, Vol. 55, No. 8(2014), pp. 1765–1777.
[6] 文部科学省: 小学校段階におけるプログラミング教育の在り方について（議論の取りまとめ）, (2016).