小学生にプログラミング教育を行ってみた話

この記事は、[NTTテクノクロス Advent Calendar 2020](https://qiita.com/advent-calendar/2020/ntt-tx) 8日目です。

NTTテクノクロス IoTイノベーション事業部の神長です。
社内では、モバイル向けアプリ開発の技術支援、ノウハウ記事の執筆、[社内研修講師](https://www.ntt-tx.co.jp/products/soft_dojyo/?utm_source=qiita&utm_medium=ac2019&utm_campaign=13)等を担当してます。

# はじめに

記事のテーマである「小学生向けのプログラミング教育」ですが、2020年度から本格導入されたこともあり、近年インターネットや新聞・雑誌等、様々な媒体で取り上げられる、非常に注目度の高い分野です。

この記事では、一般的なIT企業の社員である私が2018年から取り組んだ「⼩学⽣向けプログラミング教育」の活動内容、活動過程で得た知見・ノウハウ等を紹介します。

将来的に同様の活動をしてみたい・活動に興味がある方にとって、少しでも役に立てればと思っています。

# 活動のきっかけ

今から遡ること2年前、私の長男と長女が、後に初めて「⼩学⽣向けプログラミング教育」を行う学校である「川崎市立上丸子小学校」(以降、上丸子小学校) で一緒に過ごす最後の年でした。私はその年の始めから、長男の卒業前に記憶に残るイベントをやりたいと思い、空き時間を見つけてはアレコレ考えを巡らせていました。そうした中、ふと見たニュースサイトで、2020度から「⼩学⽣向けプログラミング教育」が開始されることを知りました。

私が業務の一貫で社員向けの技術研修の講師や勉強会を主宰してたこと、仕事に関わる技術分野以外でも発信の場を求めていたこともあり、「⼩学⽣向けのプログラミング教室」を開催したら面白いと考えました。

そして、この考えを町内会の活動で知り合った上丸子小学校のPTA関係者に相談したところ、川崎市教育委員会における[寺子屋事業](https://www.city.kawasaki.jp/880/category/10-14-0-0-0-0-0-0-0-0.html) **※1** の主催者を紹介頂き、調整・話し合いの末、寺子屋事業の一貫として、2018年3月 上丸子小学校で「第1回 ⼩学⽣向けのプログラミング教室」の開催に至りました。

写真は、当時の様子です。私が講師、長男と妻が講師補助、娘が聴講者として参加しました。

![programing1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/01504657-3949-d49f-8c46-6555c1585d46.jpeg)

また、社内的な調整は、同時期に上司が横浜市の中学校でキャリア教育 **※2** を行ったこと、弊社が以前より[様々な社会貢献活動](https://www.ntt-tx.co.jp/corporate/csr/csr06.html)に取り組んでいたこともあり、難航することもなく、寧ろ追い風となりました。

これを皮切りに、現在に至るまで、様々な場所、形態で「プログラミング教育」を行うこととなり、当初1人で始めた活動も現在では、社員8名、他社社員3名の活動に成長しました。

**※1 寺子屋事業は、川崎市教育委員会が主宰する「放課後の学習支援、体験学習・地域の世代間交流」を目的とした活動。**

**※2 「IT業界の魅力を子供たちに伝える！」をテーマに、学校を訪問し、仕事の内容等を伝える活動。**

# 現在迄の活動

私は2018年3月〜現在までの間、ビジュアルプログラミングソフト **※3** の[Scratch](https://scratch.mit.edu/)を利用して、様々な形態でプログラミング教育を行ってきました。ここでは、活動形態毎の内容、当時の様子を紹介します。

**① プログラミング体験イベント**

**② プログラミング授業**

**③ クラブ活動**

**④ 全日本教育工学研究協議会全国大会**

**⑤ コンテンツ公開**

**※3 ビジュアルプログラミングソフトとは、簡単な操作(ドラッグ&ドロップ等)でプログラムコードに相当するブロックをつなぎ合わせ、プログラミング体験ができるソフトです。Scratch以外では、micro:bit、Viscuit等が、教育現場で良く利用されています。**

## ① プログラミング体験イベント

2018年〜2020年の間に、寺子屋事業をはじめ、計3回のプログラミング体験イベントを企画・開催しました。イベントでは、児童とその保護者の方々、先生達と一緒にパソコン/タブレット使い、簡単なアニメーションの作成しました。

どのイベントでも、非常に多くの人が集まり、開催の度に「プログラミング教育」への関心度の高さを実感することができました。

- 2018年3月、5月、8月　川崎市教育委員会 寺子屋事業 上丸子小学校 1〜6学年の児童 113名・・・社員5名で対応
- 2019年10月 新島村立新島小学校で小学生＋教員 12名・・・社員2名、ボランティアスタッフ2名で対応
- 2020年2月 みなとみらい本町フェスティバル SDGsブース出展 横浜市立本町小学校 1〜6学年の児童 180名・・・社員6名で対応

![programing2.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/afd58a77-2834-2ea4-9104-971fc279cff1.jpeg)

## ② プログラミング授業

2019年11月と12月に上丸子小学校の5〜6学年の児童(各4クラス:80名)に、プログラミングの授業を行いました。 授業の中では、プログラミングの概念やパソコンを使い、簡単なプログラムを2本作成しました。

授業開始当初は、パソコンに不慣れな児童が多かったのですが、プログラムの作成過程で、パソコンの操作も憶え、作成したプログラムをカスタマイズする児童もみられました。

今年は、12/24に同小学校の5学年の児童(各4クラス:151名)に授業を行う予定です。

![programing3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/982915e6-7a51-8028-0c5c-59d15205c7c7.jpeg)

## ③ クラブ活動

2019年5月〜2020年2月 同校の4〜6学年の児童(34名)、2020年9月〜12月 同校の4〜6学年の児童(20名)が所属するパソコンクラブ活動の指導を行いました。

指導にあたっては、私以外に他社のエンジニア2名、弊社社員1名に参画してもらい、ゲームアプリと児童が書いたイラストをプログラムに取り込んだアニメーションの作成を行いました。クラブ活動を通して、数多くの才能と独創的なアプリに出会うことができました。

![programing4.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/73f5c37e-5ac0-f83d-0be6-ae28456aed58.jpeg)


なお、児童が作成したアニメーションの一部をScratch公式サイトで公開してます。

[児童が作成したアニメーション](https://scratch.mit.edu/projects/384823936/)

![animation_app.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/6eaf23e9-97d2-e7cc-940c-0417d62c7145.gif)


## ④ 全日本教育工学研究協議会全国大会

この活動では、児童にプログラミングを教えるだけでなく、活動の過程で得た経験や情報を先生と協力して論文にまとめ、 年に1度開催される「全日本教育工学研究協議会全国大会」と呼ばれる会議で発表を行ってます。

現在までに、川崎大会と島根大会に川崎市教育委員会、川崎市立上丸子小学校の先生と一緒に参加・登壇を行いました。今年の鹿児島大会は、他社社員とオンラインで参加・登壇を行いました。

![oneself.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/f04b0906-fb97-0201-3878-65e9d0b4e957.jpeg)

川崎大会では「寺子屋事業」に関する論文。島根大会と鹿児島大会では「クラブ活動」に関する論文を発表してます。各大会で発表した論文は、インターネット上に公開されているので、見てみてください。

[川崎大会：川崎市「地域の寺子屋事業」とNTTテクノクロスで取り組んだ「小学生向け プログラミング教育」](http://www.jaet.jp/repository/ronbun/JAET2018_A-3-14.pdf)

[島根大会：川崎市立上丸子小学校と NTT テクノクロスで取り組んだ IT エンジニアの職業体験を取り入れた「小学生向けプログラミングクラブ」](http://www.jaet.jp/repository/jaet_paper_2019.pdf)

[鹿児島大会(オンライン)：オリジナルアニメーション作成で教える 「プログラミング教育の難易度を下げるコツ」](http://conv.jaet.jp/2020/wp-content/uploads/2020/10/%E2%98%85%E8%AB%96%E6%96%87%E7%B5%B1%E5%90%88%E3%83%87%E3%83%BC%E3%82%BF_20201027.pdf)

## ⑤ コンテンツ公開

2020年4月・5月に、今年度(2020年度)の川崎市立上丸子小学校 パソコンクラブで使うアプリのサンプルをScratch公式サイト、アプリの作り方をまとめた資料をGitHubで公開しました。公開したアプリと資料は、私や弊社社員、他社社員と協力して作成しました。(詳しくは、以下リンクを参照してください。)

[アプリのサンプル集](https://scratch.mit.edu/studios/26309452/)

[アプリの作り方資料](https://github.com/jincho-ntttx?tab=repositories)

# 活動を通じて得たもの

## プログラミング教育をとりまく現状と課題

活動の過程で、多くの学校で以下課題があることに気付きました。

- 学校間の学習環境の格差(児童が利用するPC/タブレット等の端末、ネットワーク環境の有無等) **※4**
- プログラミングの有識者の協力が得られない学校では、知識・経験の無い教員が試行錯誤でプログラミング教育を導入しなければならない状態に陥っている
- プログラミング教育を行う際に必要となるPC/タブレットの操作の習熟度が教員・児童共に個人差がある

**※4 [GIGAスクール構想](https://www.mext.go.jp/a_menu/other/index_00001.htm)により、今後問題は解消されると考えます。**

## 課題に対する取り組み

前述の課題に対し、各種活動実施時に以下取り組みを行いました。

- 限られた数のPC/タブレット数でもプログラミングを学習できるように児童を3人1組のチームにする方式を導入した。
- オフラインでもプログラミングを学習できるよう、予めPC/タブレットにScratchをインストールしておく。
- プログラミング学習開始前に、作成するプログラムの説明、児童が検討・相談をする時間を設け、完成のイメージを持てるようにする。
- プログラミング学習で利用するプログラムを児童が関心を持ち易いゲーム作成やプログラミングをあまり意識させないアニメーション作成を採用し、プログラミングが難しいという意識を持たせず、後々の難度上げをスムーズに行うことができるようにした。
- プログラミングイベントや授業のように短時間で実施するものでは、上記に加え、プログラムの一部を作成して完成させるコンテンツを提供して、受講した児童が達成感を味わえるようにした。
- プログラミング学習開始前に、PC/タブレットの操作方法の説明を行った。また、説明に加え、手元で操作方法を確認できる資料を配布した。

そして，この活動を通じて児童が次の3点を習得できることを目標としました。

- プログラミングを使ったモノ作りを楽しむ。
- プログラミングが目的を実現するためのツールであるということを自然に感じとる。
- 『社会の中でのプログラミングの存在と役割』に気づく。

## 成果と課題

活動を通じて、以下成果と課題を得ることができました。

### 成果

- チーム方式を導入したことで、PC/タブレットに不慣れな児童とそうでない児童とのギャップを埋めることができた。
- チーム方式を導入したことで、児童間で理解が遅れている児童をフォローする、プログラムの作成過程で得た知見・ノウハウを共有するといった具合に児童のコミュニケーション能力、チームワークを向上させることができた。
- 作成するプログラムの説明し、検討時間を設けたことで、児童が作成するプログラムに対して明確な『完成イメージ』を持つことができた。
- 児童が明確な完成イメージが持てたことで、プログラムの作成過程で生じる疑問点、不明点に対して単に分からないではなく、利用するScratchのソースコードに対する相談や問題を解決するためのアプローチに関する質問等、具体性を伴う内容になった。
- クラブ活動でアニメーション作成を行った際、児童がScratch以外の様々なソフトを最大限活用して良いアニメーションを作ろうと努力していた。例えば、アニメーションの内のキャラクターや背景の着色に利用するペイントソフトの使い方を教えていないにも関わらず、やり方を知っている児童が知らない児童に教え、全員がアニメーションの完成度を高めつつ、ソフトを使いこなすまでに成長した。これは、アニメーション作成を通じて、プログラミングソフトや他のソフトが有効なツールであるとを児童が自然に認識したとことと言え、児童が興味・関心を持つ題材を設定することで、難しいという意識を持たせずに自らが楽しみながらプログラミングを活用する環境を作り出すことができた。

### 課題

- [GIGAスクール構想](https://www.mext.go.jp/a_menu/other/index_00001.htm)に推進により、今以上にプログラミングを取り入れた学習の機会が増えることが予想される。活動の過程で、児童のPC/タブレットの操作スキルにバラつきがある場面を目にしてきたため、プログラミングの学習同様、学習時に活用するPC/タブレットの操作を習得する場を設ける必要がある。
- 授業に組み込むプログラミングの内容に応じて、IT企業や地域のNPOと連携して、プログラミングの経験が浅い児童や教員をサポートする体制の構築を行う必要がある。

# 今後の展望

現状は、小学校に赴き、授業やクラブ活動の形式でプログラミング教育を行うことが主ですが、[GIGAスクール構想](https://www.mext.go.jp/a_menu/other/index_00001.htm)により、近い将来、学校側の設備が今以上に拡充されるので、そうなった場合は、オンラインで他県の小学校も視野に入れた活動を行いたいと考えてます。

# 参考・引用

- [小学校プログラミング教育の手引(第三版)](https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf)
- [文部科学省 GIGAスクール構想](https://www.mext.go.jp/a_menu/other/index_00001.htm)

# おわりに

最後まで読んで頂き、ありがとう御座います。

今回はプログラミング教育に焦点を当てた記事を執筆しましたが、今後は、iOS・Swift関連の業務を行う過程で得た知見・ノウハウ等の記事も公開できればと考えてます。

それでは、[NTTテクノクロス Advent Calendar 2020](https://qiita.com/advent-calendar/2020/ntt-tx)の9日目にバトンタッチします。