海外のプログラミング教育

私が2020年に小学校でプログラミング教育が義務教育化されることを知った時に、真っ先に気になったのが諸外国のプログラミング教育の実体についてでした。

なぜなら、プログラミングの義務教育化の流れを作るにあたって、文部科学省は世界の先進事例を調査し、その事例を元に日本教育の現場で「どんなプログラミング教育を」「どのように進めていくのか」についてまとめてくると考えたからです。

これらの諸外国の動向を踏まえて、日本の教育戦略として、プログラミング教育にどこまで注力するのか予想することができます。

今回は諸外国のプログラミング教育事情について、イギリス・ハンガリー・エストニアについてご紹介します。お時間のない方は、ハンガリーのプログラミング教育事情だけでもチェックすると、日本のプログラミング教育の遅れがどれほどのものか体感していただけると思います。

イギリスのプログラミング教育

Google Map より

イギリスでは、2014 年 9 月より教科「Computing」がスタートし、CS(Computer Science)、IT(Information Technology)、DL(Digital
Literacy)の 3 分野で構成されています。その中で、プログラミングは CS に分類され、アルゴリズムの理解、プログラムの作成とデバッグ、論理的推論によるプログラムの挙動予測、情報技術の安全な利用法、コンピュータネットワークの理解などに当てられています。

イギリスのプログラミング指導時間

指導時数は、一般的にプライマリースクールでは 1 時間 / 週(約 30 時間 / 年)程度となっています。(学校により異なる)

イギリスのプログラミング指導者体制

指導者は、プライマリースクールは、教科「Computing」における専任の教員はおらず、学級担任が指導しています。一方、セカンダリースクールは基本的に教科「Computing」については専任の教員が指導しており、専任教員が足りない場合は理科や数学の先生が兼任しています。

「諸外国におけるプログラミング教育に関する調査研究」報告書01より

ハンガリーのプログラミング教育

ハンガリーのプログラミング教育

ハンガリーでは、2003年からインターネット検索やペインティングと言ったITツールの使用を行う授業を小学1〜4年生を対象に行なっており、現在では「Informatika」を 1-12 年生で連続して行なっています。

「Informatika」は① IT ツールの利用法、②アプリケーションの知識、③問題解決のツールとテクニックとしての IT、④ 21 世紀におけるインフォコミュニケーション、⑤情報社会、⑥図書館情報学、という 6 つの分野から構成されています。

プログラミングに関しては特に③の「問題解決のツールとテクニックとしての IT」の授業において、論理的思考、アルゴリズム化、基本的な一連の手続き及び制御構造を学び、実際にコンピュータプログラムを作成しテストするところまで学びます。

また、異なる分野の問題や現象をプログラムを用いて学びシミュレーショ
ンし、アルゴリズムを理解してプログラムを作成する、及びアプローチ手法の開発において、問題解決も学ぶ機会があります。

学年別には 1-4 年生では簡単なアルゴリズムを習得し、5-6 年生では簡単なプログラムの実装、検証、7-8 年生ではステップバイステップの計画手順、9 年生以降では改良の原理まで学ぶカリキュラムが組まれており、世界でもプログラミング教育へ投資が積極的な国です。

ハンガリーのプログラミング指導時間

指導時数は、1-4 年生:0.5 時間 / 週、5-10 年生:2 時間 / 週、11-12 年生:3 時間 / 週という時間数になっています。

エストニアのプログラミング教育

エストニア

エストニアでは、2012 年 9 月より教科「ProgeTiiger」がスタートし、2013 年に HITSA(Hariduse Infotehnoloogia Sihtasutus)に統合されました。選択教科である「Informatics(Informaatika)」の中でプログラミングが扱われており、ロボットプログラムゲームプログラムを用いて、プログラミングに興味を持たせる活動に重点を置いています。

2015年1月時点では、今後プログラミング教育が義務教育化する予定はありませんでした。

エストニアのプログラミング指導時間

指導時数は、学校によって異なるため一般的な指導時間は把握できていません。

エストニアのプログラミング指導者体制

指導者は、プログラミング教育の専任教員がいる場合と、数学など他教科の教員がプログラミングを教える場合があります。

小学生はロボットプログラミングから始めるべきか?

我が子にプログラミング教育を受けさせたいと思った時に、プログラミングに限定した教室に通わせるか、ロボットプログラミング教室から通わせるか迷われている方もいると思います。

ロボットプログラミングの魅力

私の経験から言うと、小学生であれば積極的にロボットプログラミングから始めることをオススメします。なぜなら、ロボットプログラミングは、「目の前にあるものがプログラミングした内容にそって実際に動く」ことにあり、これほどプログラミングの面白さを体感できるものはないからです。

プログラミングの面白さをダイレクトに感じる体験によって、お子さん自身が自分の身の回りにある様々な機械にもプログラミングが使われていることを知り、プログラムというものをより身近に感じることができるようになります。

私自身、大学(国立大学の情報通信学科)で初めてプログラミングを学んだとき、プログラミングした内容がパソコンの中だけで完結してしまうため、「プログラミングしている、それが何かを動かしている」という凄さが体感につながらずモヤモヤした経験があります。

この経験から、物理などの基礎知識がある大学生でも、プログラミングが体系的にどのように動いているのかを体感できなければ、プログラミングを学ぶモチベーションに火がつきにくく、学ぶ意欲を継続しにくいという面があることに気づきました。

もちろん、小学生向けに作られているビジュアル型プログラム言語(Scratch)などは、プログラミングを学ぶ意欲に火を付ける・その意欲を維持できる仕組みづくりに配慮されているのですが、実際にプログラミングを学んだ体験者としては、ロボットという目の前にある物が実際に動くことほどプログラミングの凄さや面白さが体感出来るツールはないと思っています。

なので、私の子供にも、プログラミングの導入としてはまずロボットから入らせようと考えています。(2歳の女の子と0歳の男の子がいます)

ロボットプログラミングには2つに大別できる

と言っても、小学生向けロボットプログラミング教材には、ロボットの組み立てから始めるもの・すでに出来上がったロボットにプログラミングをしていくものに大別でき、どちらを選択すべきか分からない方も多いのではないでしょうか。

では、組み立てから入るロボットプログラミングと、すでに組み立てられているロボットプログラミングは、どちらを選択すべきか、という議論ですが、結論、子供の得手不得手に合わせて選択するのが良いと思っています。

組み立て式ロボットプログラミングに向いている子供

それまで、ブロックなどで組み立てる力がある子・楽しめる子ならば、組み立て式のロボットプログラミングがオススメです。得意分野から始めることができるため、プログラミングへの興味喚起しやすいのが一番の理由ですが、世界的に見てハード分野につよい日本の市場で将来大いに活躍することが期待できます。

実はIT業界では、グーグルやマイクロソフトなど、ソフトウェア分野でアメリカが強いイメージがありますが、ハードウェア分野では日本はまだまだ負けていません。日本に残された世界でリードできる分野で活躍できる人材は引き手数多になることは間違いありません。もし、ブロックなど組み立てる力がある子・得意な子であれば、ぜひ一度ロボットプログラミングを挑戦させてあげると良いと思います。それだけの価値があります。

組み立て式ロボットプログラミングに向いていない子供

一方、組み立てる経験が少なかったり苦手な子には、すでに組み立てられているロボットにプログラミングする方をオススメします。もともと組み立ての素地がない子供に、ロボットの組み立てもプログラミングも一気に学ばせようとすると、どちらも頓挫する可能性が高ま流ので私ならそのようなアプローチはしません。

まずは、プログラミングした内容に沿って目の前のロボットが動くことに面白みを感じ、そして次にプログラミングを使って色々試してみたいというステップを踏むことを最優先すべきです。

と、ここまでプログラミングの導入としてロボットプログラミングが最適である理由を自分の経験からまとめましたが、ロボットプログラミングは、値段がそれ相応にかかるため、できるだけ長く汎用的に使えるロボットプログラミングツールを選びたいと思うのが親心。

そこで、私の独断で推薦したいロボットプログラミングについてご紹介します。

IE-Schoolとは?(中学校・高校のプログラミング教育事例)

IE-Schoolとして指定されている小学校6校のプログラミング教育事例を紹介しましたが、そこでは様々な成果と課題が浮き彫りになっていました。

ここでは、中学校・高校で指定されている8校で先行して行われているプログラミング教育の内容と、実施した後に見えてきた成果・課題についてご紹介します。

  • 静岡英和女学院中学校・高等学校
  • 古河市立三和東中学校
  • 筑波大学附属駒場中学校
  • つくば市立春日学園義務教育学校
  • 神奈川県立住吉高等学校
  • 早稲田大学高等学院
  • 北海道浦河高等学校
  • 宮城県多賀城高等学校

静岡英和女学院中学校・高等学校 

プログラミング教育の内容

静岡英和女学院中学校・高等学校では、中学校2年生を対象に総合的な学習の「地域について考えよう」というテーマでプログラミング教育が導入されました。

地域について調べる際に、タブレットを使用して情報取集し、発表する際にプレゼンテーションアプリを使用しました。

プログラミング教育の成果

静岡英和女学院中学校・高等学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 全教員が同じ方向を向いて情報活用能力の育成ができた点
  • 情報モラルやセキュリティに関して、保護者からタブレットなどの使用に関するヒアリング・生徒からのSNS情報モラルに関するアンケートから年齢に応じた内容を明確化でき、年間計画に組み込んで実施することができた点
  • タブレットなどのICT機器を利用することによる教員負担の軽減
  • タブレットなどに不慣れな教員に対してICT支援員がフォローしたことで、ICT機器を利用した授業の展開ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • ICTを活用してさらに情報活用能力を育成する方法論を展開していく点
  • 情報モラルの年間計画に関しては、より専門的な見解を組入れるために静岡大学と連携していく点

古河市立三和東中学校 

プログラミング教育の内容

古河市立三和東中学校では、中学校1年生を対象に数学の「量の変化と比例、反比例」の時間を使ってプログラミング教育が導入されました。

具体的には、(1)アプリを使って図やグラフを作成する(2)作成した図やグラフをアプリを使って共有・比較する(3)お互いの表やグラフの相違点・共通点を見つけ考察する、といったプログラミング教育が実施されました。

プログラミング教育の成果

古河市立三和東中学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • カリキュラムと発達段階に合わせた情報活用能力を明確化し、年間指導計画に落とし込んで実践できた点
  • 情報ネットワークやICT機器といったハード面に関して、企業の協力を得て整えることができた点
  • アプリの導入によって、アダプティブな授業展開・協働的な授業展開が可能になった点
  • 環境整備によって、生徒がPCやタブレットなどのICT機器に触れる時間が増え、情報活用能力の育成に大きく寄与している点
  • 有識者やNPO法人といった外部要員がプログラミング教育の現場に入ったことによって、より専門的なプログラミング授業を行うことができた点
  • タブレットなどのICT機器を利用することによる教員負担の軽減
  • タブレットなどに不慣れな教員に対してICT支援員がフォローしたことで、ICT機器を利用した授業の展開ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 他の学校と連携して、義務教育期間である9年間を通してプログラミング教育の研究を展開していく点
  • 生徒の発達段階に合わせた情報モラルの展開だけでなく、保護者に向けた情報発信もしていく点
  • 小学校・中学校でそれぞれに育成すべき情報活用能力を見極めて授業に取り入れていく点
  • 現在、ICT支援員に生徒と同じPC環境が整っておらず、ICT支援員がアプリの内容を熟知できていないため、ICT機器の基本的な操作スキルの支援のみに留まってしまっている点

筑波大学附属駒場中学校 

プログラミング教育の内容

筑波大学附属駒場中学校では、元来、クラウド環境を利用した学習を行っており、蓄積された活動記録や成果物はポートフォリオに落とし込み、その後の学習にも行かせるような素地ができていました。

そんな中、IE-Schoolに指定された年度は、中学校3年生を対象に総合的な学習で行った「物理パラメータとアルゴリズムの改良に着目した着陸ゲームの開発」の時間を使ってプログラミング教育が導入されました。

具体的には、(1)ゲームのアルゴリズムと変数を理解する(2)プログラムの仕組み理解(3)ゲーム実行のための合理的な方法を知る(4)プログラミングを使用て技術的な問題解決する、といったプログラミング教育が実施されました。

プログラミング教育の成果

筑波大学附属駒場中学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 次年度実施の単元開発、授業設計、教材開発(インタフェースの改良、ライントレースカーの改良、制御モジュールの改良)ができた点
  • 数学科(代数)、技術・家庭科、情報科、総合的学習の時間、特別活動に絞り、資質・能力ベースの情報活用能力の整理ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 数学(幾何)、理科等にも調査対象を広げ整理する点

つくば市立春日学園義務教育学校 

プログラミング教育の内容

つくば市立春日学園義務教育学校では、第8学年を対象に数学の「一次関数」の時間を使ってプログラミング教育が導入されました。

具体的には、比較検討の場面でタブレットを用いて学習支援システムを活用することで、個人の意見をそれまでよりもスピーディに見比べ、より良い解決方法について議論できるようなプログラミング教育が実施されました。

プログラミング教育の成果

つくば市立春日学園義務教育学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 筑波大学協力の下、ラズベリーパイを活用した「つくば市の中学生向けのネットワーク接続、サーバー構築体験イベント」が開催できた点
  • 電子黒板を活用したプレゼンテーションの手引きの作成ができた点
  • 推進校内における学園内プレゼンテーションコンテスト開催し、市内小中学生約1万人の参加を募ることができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 小中学校9年間を通して情報活用能力を含めた21世紀型スキルが体系的に身に付けられるような指導計画を策定する点
  • 小中学校および特別支援教育におけるプログラミング教育をさらに推進し、教科の中でのプログラミング学習の位置づけを図る点
  • 電子黒板を使ったプレゼンテーションコンテストを市外にも拡大し実施する
  • 現在、ICT支援員に生徒と同じPC環境が整っておらず、ICT支援員がアプリの内容を熟知できていないため、ICT機器の基本的な操作スキルの支援のみに留まってしまっている点

神奈川県立住吉高等学校

プログラミング教育の内容

神奈川県立住吉高等学校では、高校2年生を対象に地理歴史科・世界史Aの「ヨーロッパ・アメリカの工業化と国民形成 」の時間を使ってプログラミング教育が導入されました。

具体的には、タブレットを使用して学習した内容をまとめ、他者と協働で課題を作り、電子黒板を使用して生徒と教師の双方向の授業スタイルをとったプログラミング教育が実施されました。

プログラミング教育の成果

神奈川県立住吉高等学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 「LEGOマインドストーム」を導入し、「社会と情報」でプログラミング教育を実践できた点
  • 外部連携機関と共同した情報セキュリティに関する授業を実践した点
  • 外部有識者を講師とした、プログラミング的思考を含む情報活用能力の育成や、アクティブ・ラーニングの視点に基づく授業づくりなどの教員研修を実施ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 次年度の年間指導計画の作成、教材の開発などに発展的に取組、情報活用能力の体系的な育成を図れぞれに育成すべき情報活用能力を見極めて授業に取り入れていく点
  • 現在、ICT支援員に生徒と同じPC環境が整っておらず、ICT支援員がアプリの内容を熟知できていないため、ICT機器の基本的な操作スキルの支援のみに留まってしまっている点

 

早稲田大学高等学院 

プログラミング教育の内容

早稲田大学高等学院では、高校1年生を対象に社会と情報の時間で「情報社会の光と影」という単元でプログラミング教育が導入されました。

具体的には、ウェブサイトに掲載されている多種多様な情報から適切に主査選択する、コンピュータを使用して発表に使用するスライドの作成といったプログラミング教育が実施されました。

プログラミング教育の成果

早稲田大学高等学院で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 校内体制として、次年度のカリキュラム作成、教材の作成、他教科や課外活動との連携強化ができた点
  • 環境整備として、電子テキストの導入・使用、無線LAN/クラウド型アプリケーションなどを整えることができた点
  • 大学や企業から協力体制を整えることができた点
  • 公開授業の実施や、情報関連学会への発表ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 全ての教科・教師がプログラミング教育が実践できていない点
  • 現在は大学運営のネットワーク環境を利用しているので、今後は高等学校独自の環境配備をしていく点

北海道浦河高等学校 

プログラミング教育の内容

北海道浦河高等学校 では、高校3年生の国語・現代文Bの時間を使ってプログラミング教育が導入されました。

具体的には、7グループに2台ずつタブレットを用意し、1台は情報蒐集用、1台は資料作成用に用いたプログラミング教育が実施されました。

プログラミング教育の成果

北海道浦河高等学校 で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 指導モデルを開発できた点
  • 遠隔授業システムによるプログラミングに関わる授業について、指導モデルを開発できた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 教科横断的な情報活用能力の育成について、各校の成果と課題等について検証する必要がある点
  • 各教科の取組を俯瞰する全体計画を作成し、平成28年度に作成した年間指導計画を見直す手段としての有用性を検証する必要がある点
  • 指導モデルの有用性を検証する必要がある点

宮城県多賀城高等学校 

プログラミング教育の内容

宮城県多賀城高等学校では、高校1年生の災害科学・自然科学と災害A の時間を使ってプログラミング教育が導入されました。

具体的には、クローンについて賛成グループと反対グループに分け、タブレットを使って動画を確認したのち、賛成反対の意見をまとめて発表させ、情報が意思決定に与える影響について考察するというプログラミング教育が実施されました。

プログラミング教育の成果

宮城県多賀城高等学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 他教科と学習内容を共有できた点
  • 遠隔授業システムによるプログラミングに関わる授業について、指導モデルを開発できた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • 各教科・科目における学習目標の定着に寄与する効果を具体的に評価する手法が未だ確立できていない点
  • 教材提示ソフトや動画、シミュレーションを用いた授業を行っていが、その使用が学習効果に及ぼす影響を示す指標が確立できていない点
  • タブレットの活用効果を具体的に評価する手法を探っていくこと

IE-Schoolとは?(小学校のプログラミング教育事例)

IE-Schoolとは、2020年から始まる小学校プログラミング教育過程の義務教育化を踏まえて、事前にプログラミング教育の指導体制や授業設計について現場研究が行われている学校を指します。

IE-Schoolに指定された14校

IE-Schoolとして指定されたのは14校あります。

今回は、そのうち小学校をメインとした6校のプログラミング教育の先行事例をご紹介します。先行してプログラミング教育を実行していく中で見えてきた成果と課題についてもそれぞれの学校別にチェックすることができます。

  1. 一宮市立末広小学校
  2. 立命館小学校
  3. 草津市立志津南小学校/草津市立玉川小学校
  4. 信州大学教育学部附属長野小学校
  5. 福岡教育大学附属久留米小学校
  6. 新居浜市立金子小学校

一宮市立末広小学校 

プログラミング教育の内容

一宮市立末広小学校では、小学校5年生を対象に家庭科の授業で「めざそう 買い物名人」というテーマで、(1)様々な商品情報が入っているタブレットPCを使って、買い物をする際に必要な情報を自分たちで選び、(2)グループで選んだ商品を、タブレットPCを使って発表させる、という授業を展開しました。

プログラミング教育の成果

一宮市立末広小学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 子供達がScratchを使用する中で試行錯誤しながら意欲的に授業に取り組めた点
  • タブレットなどのICT機器を利用することによる教員負担の軽減
  • タブレットなどに不慣れな教員に対してICT支援員がフォローしたことで、ICT機器を利用した授業の展開ができた点

プログラミング教育の課題

一方で、プログラミング教育の課題として挙げているのは、以下の点でした。

  • Scratchなどのビジュアルプログラミング言語を使用せずにプログラミング的思考を育成する方法の検討
  • 年齢に応じた情報モラルの授業展開になっていたかを再検討する必要がある

このように、実際にプログラミング教育を開始するにあたり、「ICT機器への対応」「ICT支援員のフォロー内容」「Scratchなどのプログラミング言語への対応」「情報モラルの教育内容」などが検討事案・課題に上がっていることがわかります。

立命館小学校 

立命館小学校では、小学校6年生を対象に情報の時間で「プレゼンテーション講座」という単元でプログラミング教育を実施しました。

その内容は、(1)一人1代台のタブレットを用いてプレゼンテーションしたい内容についてスライドを作成し、(2)その内容を発表発表させる、という授業を展開しました。

プログラミング教育の成果

立命館小学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • 学年ごとに育成すべき情報活用能力の明確化
  • 教員の方に対して、国内外の先行事例の共有と新しいツールを使用することによって、様々な教科で本校独自のプログラミング教育が展開された
  • 文部科学省が公表しているプログラミング教育で育成したい「三つの柱」などを踏まえた年間教育計画の構築

プログラミング教育の課題

一方で、以下のような課題も挙げられています。

  • 本年度に策定した年間指導計画や指導内容などを、外部の評価も踏まえて改善していくこと
  • 外部の評価は、公開授業や学会の発表などを検討している

草津市立志津南小学校/草津市立玉川小学校 

草津市立志津南小学校/草津市立玉川小学校 は、2つのプログラミング教育事例があります。

一つは、小学校5年生を対象に図画工作・総合的な学習の時間で実施した「コマコマアニメーション」と題して楽しいデジタル作品をつくるプログラミング教育を実施しました。

この授業では、一人1台のPCでScratchを用いてアニメーションを作成しました。この作成にあたっては、立命館大学情報理工学部システム学科の協力を得て、分からないことがすぐに聴ける環境配備を行ないました。

二つ目の事例は、小学校6年生を対象に理科の授業で「てこのはたらき」を学ぶ際にプログラミング教育を実施しています。

この授業では、タブレットPCに示したてこの動きに関する予想や結果を、画面共有システムを活用してスピーディに共有して問題解決に役立てたり、タブレットを使用して情報の収集等に使用しています。

プログラミング教育の成果

プログラミング授業の成果として、以下の点が報告されています。

  • プログラミング的思考を学ぶ問題に、繰り返し挑戦することで問題解決能力、想像力、論理的思考が育成された。
  • 教員の方に対して、国内外の先行事例の共有と新しいツールを使用することによって、様々な教科で本校独自のプログラミング教育が展開された
  • 文部科学省が公表しているプログラミング教育で育成したい「三つの柱」などを踏まえた年間教育計画の構築

プログラミング教育の課題

一方で、以下のような課題も挙げられています。

  • プログラミング教育を単発で終わらせるのではなく、継続して行う仕組みづくり

信州大学教育学部附属長野小学校

信州大学教育学部附属長野小学校では、小学校3年生を対象に理科の授業で「ロコの家まで届くかな 光る豆電球」という単元でプログラミング教育を実施しました。

その内容は、豆電球の電気をモデル化するにあたって動画やアニメーションを用いて実施しました。

プログラミング教育の成果

信州大学教育学部附属長野小学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • Scratchを使用したプログラミング活動も実施できた。
  • 協働学習システムを使用して、子供達の意見の吸い上げ、整理、比較しながら示せる方法は、様々な教育現場で応用できそうであるという発見。

プログラミング教育の課題

一方で、以下のような課題も挙げられています。

  • 教科学習や総合学習の時間の中で、目標を達成するツールとしての利用が実施できなかった。

福岡教育大学附属久留米小学校 

福岡教育大学附属久留米小学校では、小学校5年生を対象に情報科の授業で「パスワードの管理」という単元でプログラミング教育を実施しました。

その内容は、パスワードの管理方法についてPCを利用して学び、実際にPCを使ってパスワード設定するという内容です。

プログラミング教育の成果

福岡教育大学附属久留米小学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • プログラミング教育として身につけさせたい能力や素質を明確にすることができた。
  • 授業を受けた子供達のフィードバックをアンケートを用いて実施することができた。

プログラミング教育の課題

一方で、以下のような課題も挙げられています。

  • どの教科・どの単元にプログラミング教育を関連づけて実施するかが不明確だった
  • 低学年向け教材が未開発な点

新居浜市立金子小学校 

新居浜市立金子小学校では、小学校5年生を対象に総合的な学習の時間・体育科の授業で「命と命でつながろう・けがの防止」という単元でプログラミング教育を実施しました。

この授業では、より良い生活をするための情報収集や、発表の場で使用するプレゼンテーションツールをプログラミング要素として取り入れています。

プログラミング教育の成果

新居浜市立金子小学校で実施されたプログラミング授業の成果として、以下の点が報告されています。

  • プログラミング教育から、相手がいること、相手からフィードバックを受けることを通して、自分の成果物を振り返ることができる点
  • アクティブラーンングの観点から創造的な学習活動にすることができる点。
  • 積極的にICT機器を導入することにより、授業の質向上や教員の意識変革に寄与した。その結果、教員のICT機器の使用率が上がり効果的にICT機器を授業に取り入れることができるようになった点。

プログラミング教育の課題

一方で、以下のような課題も挙げられています。

  • 教員全体で、プログラミング教育の目的などを統一して情報活用能力について具体的にわかりやすくまとめる必要性がある
  • 情報モラルに関する教育内容、その年間計画の策定の必要性がある

小学校編|プログラミング教育の目的

なぜ小学校でプログラミング教育が始まるのか?

2020年から、小学校でプログラミングが必修化されます。この背景には、AIの発展によって予測不可能な未来を、子供達が生き抜くための教育を行う必要性が出てきていることが理由に挙げられます。

AIの発展による予測不可能な未来とは?

一言で言うと、「人工知能によって人間の仕事が奪われる可能性がある未来」です。

このような表現をすると、”得体の知れない人工知能によって急に仕事が奪われてしまうのではないか”と心配される方もいるかも知れません。しかし、現在の生活の中でも「ロボットによる人間の仕事の代替」は起こっています。

例えば、一昔前、田植え〜稲刈り〜脱穀など人の手作業で行われてきました。しかし現在はコンバインと言う機械によって人の手で行う何十倍の速さで稲刈りと脱穀が行われています。

問題はその代替されるスピードと精度にあります。

例えば、自動車の自動運転技術は、近い将来、バスやタクシーやトラックの運転手の仕事を奪いかねません。このように、人工知能の発達によってそう遠くない未来に、人間の仕事の多くがロボットに奪わる時代が訪れようとしています。つまり、今当たり前にある仕事が近い将来なくなってしまうような大転換時代を迎えているのです。

詰め込み教育の終焉

では、これからの将来を見据えた時、今までのように知識詰め込み型の教育を受けた子供達が、人工知能よりも優って仕事をすることができるのでしょうか。

答えは「NO」です。

知識だけを詰め込むことは、機械やAIがもっとも得意とするところです。人間の記憶量や正確さは、AIに及びません。つまり、今までのように知識を詰め込むだけの教育を受けても、生き抜くことが難しくなってくるのです。

人工知能を使いこなす側になるために

子供達が大人になった時、人工知能に仕事を奪われる側ではなく、人工知能をうまく利用しながら仕事をする側になるためにどんな教育が必要なのか。このような議論が繰り返され、様々な教育について検討した結果、「小学校からのプログラミング教育が必要だ」と国が判断したのではないでしょうか。

人工知能による大転換時代について詳細を知りたい方には以下の本をお勧めします。
「仕事消滅 AIの時代を生き抜くために、いま私たちにできること (講談社+α新書)」

プログラミング教室で使用されるハードウェア

ハードウェアとは、コンピュータそのものを指しています。例えばパソコンやタブレットなどもその一例です。

ここでは、プログラミング教室で使用されているハードウェアの種類とそれぞれのメリット・デメリットがあります。

「子供向けプログラミング教室」で使用されている4つのハードウェア

プログラミング教室で使用されているハードウェアの種類は、大きく4つに分けることができます。それは「パソコン」「タブレット端末」「シングルゾードコンピュータ」「ロボット、センサーカー等」です。

各ハードウェアの特徴についてご紹介します。

パソコン

パソコンのメリット

  • 汎用性が高い
  • 大きな画面を使用することができる
  • 様々なプログラム言語に対応できる

パソコンのデメリット

  • 他のハードウェアに比べて高価(5万円台〜30万円ほど。もっと高価なパソコンもある)
  • パソコンのセッティングが複雑
  • キーボード入力・マウス操作ができる必要がある

以上のことから、プログラミング初心者の場合、パソコンを使用してプログラミング学習をするためには

  1. キーボード入力(ブラインドタッチ)ができる
  2. マウス操作ができる
  3. パソコンの基本的な構造や操作を知っている

ことなどが必要になることがわかります。

タブレット端末

タブレット端末のメリット

  • 直感的に操作することができる
  • 小学生低学年の子供でも操作しやすい

タブレット端末のデメリット

  • 画面領域がパソコンに比べると狭い
  • 比較的、値段が高価(3万円台〜9万円ほど)

以上のことから、プログラミング初心者の場合、パソコンよりも操作の習得に時間がかからないタブレット端末のほうが向いているように感じます。しかし、より複雑なプログラムやテキスト型のプログラミング言語を使用する場合は、操作性の点でパソコンのほうが適していると言えます。

シングルボードコンピュータ

シングルボードコンピュータとは、パソコンを構成する必要最低限の要素(例えばパソコンの脳に当たるCPUなど)に絞ったコンピュータのことです。見た目は、むき出しの基盤となっており、手のひらに乗るサイズです。

シングルボードコンピュータのメリット

  • 本体のみなら数千円で購入できるほど安価である
  • 子供が直接基盤を手に触れながら入力や出力について考えることができる
  • コンピュータの成り立ちについて学ぶことができる

シングルボードコンピュータのデメリット

  • パソコンと同じように使用するためには、シングルボードコンピュータ以外にキーボード・モニター・マウスなどが必要

ちなみに、プログラミング教室において使用されているシングルボードコンピュータには、RaspberryPi (ラズベリーパイ)やIchigoJam (イチゴジャム)という種類が人気です。

RaspberryPi (ラズベリーパイ)

シングルボードコンピュータの代表格として、まずご紹介したいのがRaspberryPi (ラズベリーパイ)です。

とても美味しそうな名前ですぐに覚えてしまうRaspberryPi (ラズベリーパイ)ですが、実はイギリスで教育現場で使用することを目的に作られました。そのため、小型で数千円から手に入れることができる手軽なコンピュータとなっています。価格はシリーズによって若干個々となるが、2千円台〜4千円台で購入することができます。

安価だからといって機能的に気後れする点はほとんどなく、プログラミングに必要な要素が揃っています。

RaspberryPi (ラズベリーパイ)のメリット

  • パソコンと同じような機能を持ち合わせていながら数千円で購入でき非常に安価

RaspberryPi (ラズベリーパイ)のデメリット

  • 一般的なPCに比べると機能は低く、やれることは限られている
  • 別途、キーボードやモニターが必要

IchigoJam (イチゴジャム)

シングルボードコンピュータの代表格として、2つ目にご紹介したいのがIchigoJam (イチゴジャム)です。

RaspberryPi (ラズベリーパイ)と同じく美味しそうな名前ですが、2014年に日本で誕生しました。IchigoJam (イチゴジャム)も、非常に安価で購入することができ、その値段は千円台〜二千円台とRaspberryPi (ラズベリーパイ)よりも安く手に入れることができます。

IchigoJam (イチゴジャム)のメリット

  • 千円〜二千円で購入できるので非常に安価
  • 起動が早い
  • 機能が限定されているため子供が扱う際に懸念されるリスクを最小限に抑えられる

IchigoJam (イチゴジャム)のデメリット

  • メモリが少ないため複雑な計算に対応できない
  • テキスト型プログラミング言語であるBasicのみに対応している
  • ラズベリーパイ同様、別途、キーボードやモニターが必要

ロボット、センサーカー等

その他、ロボットやセンサーカー等もプログラミング教室で使用されているが、プログラミング要素が少ないためプログラミング教室では限定的な扱いとなっており普及が進んでいません。

ロボット、センサーカー等のメリット

  • モニター以外のリアルな物体を使って動作操作を体感できる

ロボット、センサーカー等のデメリット

  • プログラミング要素が他のハードウェアに比べて少ない
  • 組み立てに時間がかかるため、プログラミング要素以外に時間が割かれてしまう

「子供向けプログラミング教室」で使用されているハードウェアまとめ

子供向けのプログラミング教室で使用されているハードウェアは、(1)子供達にとって使いやすいか・使用に抵抗がないか・プログラミング要素が高いか、という教育的視点と、(2)導入コストは低いか、といったコスト的視点から選択されていることがわかります。

そのため、お子さんの興味や年齢にあったハードウェアを使用している教室を選ぶことが重要です。

小学生向けプログラミングツール・教材

小学生のプログラミング教室などで使用されている言語は、ビジュアル型・ブロック型言語とテキスト型言語があることをご紹介しました

では、小学生向けプログラミング教室で使用されているツールや教材としてはどのようなものがあるのでしょうか。ここでは、プログラミング教室で使用されているツールや教材についてご紹介します。

小学生向けプログラミング言語として最も使用されているScratch(スクラッチ)

今最も小学生向けのプログラミング言語として使用されているのが、ビジュアル型・ブロック型プログラミング言語に分類されるScratch(スクラッチ)です。

パソコン(タブレット)とネット環境があれば、どこでもプログラミング開発ができ、自分がプログラミング開発した作品を公開したり、他の人のプログラムを見る機能があり、小学生のモチベーション維持にも一役買っています。

Scratch(スクラッチ)は、8歳以上を対象としてつくられていますが、もっと低年齢である5〜7歳向けに開発された「Scratch Jr.」というツールもあります。

Scratch(スクラッチ)が普及している要因は、(1)アメリカのデジタルメディア研究所であるMITメディアラボが開発していること(2)すでに世界中で100万人以上の子供たちが利用していること(3)すべて無料で利用できること(4)教材が豊富にあること、などが背景にあります。

Scratch(スクラッチ)を利用には、ある一定の制御や論理理解が必要になります。また、作成したプログラミングをテキスト型プログラミング言語へ変換する機能がついていないため、テキスト型プログラミング言語へステップアップする際は、別の教材や教育が必要になります。

Viscuit(ビスケット)

次にビジュアル型・ブロック型プログラミング言語として耳にするのは、Viscuit(ビスケット)ではないでしょうか。

このViscuit(ビスケット)も、スクラッチ同様、パソコン(タブレット)とネット環境があれば、どこでもプログラミング開発ができます。

Scratch(スクラッチ)との違いは、まず自分でイラストを描いて、そのイラストを使ってアニメーションやゲームを作ることができる点です。文字を使わなくてもプログラミングができる点で、幼児でも理解できるように工夫されています。

具体的には、「条件:魚と魚がぶつかったら」「結果:それぞれの魚が向きを変える」というプログラムを作りたいとします。Viscuit(ビスケット)の場合、条件も結果に関してもすべて自分で作成したイラストを動かすことでプログラミングすることができます。

そのため、文字が読めない幼児でも感覚的に「どのようになったらどういう動きをさせたい」というプログラミングをかけるようになっています。

Viscuit(ビスケット)を使って、世界で一つだけの動く絵本を作って公開している子供たちがたくさんいるので、興味のある方はチェックすることができます。

ビジュアル・ブロック型言語とテキスト型言語の融合!Smalruby (スモウルビー)

先ほど紹介した「Scratch(スクラッチ)」や「Viscuit(ビスケット)」はビジュアル・ブロック型プログラミング言語でした。これらのプログラミング言語のメリットは、(1)文字の読み書きができない・文字の打ち込みができない幼児でも感覚的にプログラミング言語を学べる点(2)プログラミングの文法入力ミスがない、という点です。

しかし、実際のプログラミングの世界ではテキスト型プログラミング言語で構成されているため、ビジュアル・ブロック型プログラミング言語からテキスト型プログラミング言語にステップアップする際に一つの壁がありました。

そこで登場したのが、ビジュアル・ブロック型言語とテキスト型言語の融合したSmalruby (スモウルビー)というプログラミングツールです。

Smalruby (スモウルビー)は、Rubyというテキスト型プログラミング言語(実際に多くの会社で使用されているプログラミング言語の一つ)を子供向けにブロック型プログラミング言語でも組めるように開発されたプログラミング言語です。

最大の特徴は、ブロック型プログラミング言語で作成したプログラムを、ボタン一つでテキスト型プログラミング言語(Ruby)に変換できる点です。この機能があることによって、「ブロック型プログラミング言語で作成したプログラムが、テキスト型プログラミング言語ではどのようなコードで書かれているのか」を瞬時に確認することができます。

これにより、ブロック型プログラミング言語からテキスト型プログラミング言語へのステップアップすることが他のツールに比べてスムーズになります。

一方で、ネット環境とパソコン(タブレット)さえあればプログラミング開発環境が整うわけではなく、Smalruby (スモウルビー)をパソコンにダウンロードする必要があります。今までパソコンに様々なソフトをダウンロードした経験のある場合は、この作業は問題なく進められると思いますが、パソコン初心者にとってはわからないことも多く、ダウンロードの途中で断念してしまう人も少なくありません。

このような点が足かせになってしまい、Smalruby (スモウルビー)が使用されないという例は多くあります。実際に、Smalruby (スモウルビー)を使用したプログラミング教室はScratch(スクラッチ)に比べると少ないのが現状です。

その他の小学生に向いているビジュアル・ブロック型プログラミング言語

先ほど紹介した「Scratch(スクラッチ)」「Viscuit(ビスケット)」「Smalruby (スモウルビー)」以外にも、小学生向けプログラミング教室で使用されているツール・教材についてご紹介します。

プログラミン

文部科学省が開発した子供向けプログラミング言語です。スクラッチやビスケットと同様、パソコンとネット環境があればプログラミングを始められるため、比較的容易にプログラミング環境を整えることができます。

プログラミンも、自分で絵を描いたりすでに用意されているイラストを使って、歩かせたりジャンプさせるといったプログラムを簡単に作ることができます。

残念ながら、スクラッチに比べるとプログラミンはあまり普及していないのが現状です。ちなみに、プログラミンはスクラッチを参考に作られています。

レゴマインド ストーム EV3(言語部)

レゴマインド ストーム EV3 は、レゴの教育版になります。レゴブロックを使って自分の好きなものを組み立て、パソコン上で作成したプログラムをレゴに反映させて動かすことができます。

例えばレゴで車を作り、スマホでコントロールできるプログラミングを組めば、スマホで指示した通りに前方・後方・右折・左折などをさせることができます。

このように、レゴマインド ストーム EV3は、プログラムを作る要素だけでなく、そのプログラムを使って実際に物体(ロボット)を動かすところまでを一気に学ぶことができる学習ツールになります。

デメリットとしては、(1)レゴマインド ストーム EV3が5万円台と比較的高価であること(2)レゴ(ロボット)の組み立て知識・プログラミングの知識が必要なため、対象年齢が10歳以上であり幼児・小学校低学年向けの商品がないことが挙げられます。

テキスト型プログラミング言語で小学生向けツールはないの?

今までは、ビジュアル・ブロック型プログラミング言語をメインにした教育ツールをご紹介してきましたが、「プログラミング教育の導入としてはビジュアル・ブロック型プログラミング言語でもいいけど、最終的にテキスト型プログラミング言語まで教えてくれる教室はないのか?」と考えられる方もいらっしゃるのではないでしょうか。

実際、プログラミング教室の中には、テキスト型プログラミング言語を教える教室があります。ではどのようなツールを使っているのかご紹介しましょう。

Basic (ベーシック)

Basic (ベーシック)というプログラミング言語は、歴史が長く、テキスト型のプログラミング言語の基礎学習に適しています。

しかし、テキスト型プログラミング言語ならではの文法ミスのフォローが必要になるため、教育人材を確保が必要になり、結果的にプログラミング教室ではあまり利用されていないのが現状です。

Objective-C (Swift)

Objective-C (Swift)の一番の特徴は、iPhone アプリの開発ができる点です。

実際にObjective-C (Swift)をプログラミング教室で使用している教育者からは、「生活の一部担っているスマホ上で自分の開発したアプリが実行できることで、子供のプログラムに対するモチベーションを維持することができる」という声が上がっています。

しかし、開発にはMac(アップル社が出しているディスクトップパソコン)が必要になるため、Objective-C (Swift)を使用するためには初期投資しなければなりません。この点がボトルネックになり、プログラミング教室ではあまり普及していないのが現状です。

小学生向けプログラミング言語とその種類

小学生向けのプログラミング言語

小学生向けのプログラミング教育の場で使用されているプログラミング言語やツールは、実は複数存在しています。

一言でプログラミング言語といっても、大きく2つの分野にわけることができます。それは、ビジュアル型・ブロック型プログラミング言語とテキスト型プログラミング言語です。

これ以外にも、「プログラミング言語をブラウザ上(インターネットなどのネットワークを介して使用できるクロームやインターネットエクスプローラーなどを指す)で実行できるか否か」といった違いがあります。それぞれの違いについてご紹介していきましょう。

ビジュアル型・ブロック型プログラミング言語のメリット・デメリット

ビジュアル型・ブロック型プログラミング言語とは、一言で言うと「コンピュータへの命令文がテキストではなく視覚的に構成することができるプログラミング言語」のことです。

テキスト入力の必要がないため、キーボード操作をすることなくマウスのみでプログラムを組むことができ、ブラインドタッチなどができない子供でも手軽にプログラムに触れることができるようになっています。

また、テキスト型プログラミング言語は英語の要素が含まれていますが、ビジュアル型・ブロック型プログラミング言語は英語がわからなくてもプログラムを組むことができます。

すでにプログラム要素がブロックとして出来上がっており、そのブロックの組み合わせによってプログラムを組んでいくため、文法ミスがない点も、プログラミング初心者向きの言語と言えます。

テキスト型プログラミング言語のメリット・デメリット

一般的に社会で使用されているプログラミング言語は、このテキスト型プログラミング言語を指しています。

テキスト型プログラミング言語は、英語で構成されること、またテキスト入力が必須であるためキーボード操作がもれなくついてきます。そのため、英語に不慣れな小学生や、キーボードでブラインドタッチができない子供にとってはハードルの高いプログラミング言語と言えます。

しかし、ビジュアル型・ブロック型プログラミング言語では表現できなかったプログラミングを構成することができ、より複雑でより高機能なプログラムを作成したい場合は、自ずとテキスト型プログラミング言語へ移行する子供がほとんどです。

ただ、テキスト型プログラミング言語は、ビジュアル型・ブロック型プログラミング言語以上に様々な種類のプログラミング言語の種類(C言語、JavaScript、Ruby、Phython など)があるため、自分にあったプログラミング言語を選択する必要があります。

段階に合わせてプログラミング言語を選択するのがベター

このように、ビジュアル型・ブロック型プログラミング言語にも、テキスト型プログラミング言語にもそれぞれメリット・デメリットがあります。

重要なことは、小学生の理解・意欲レベルに合わせたプログラミング言語を選択することです。その選択を適切に行ってあげることで、その後の成長意欲や能力アップに影響が出てきます。

プログラミングが学べるおもちゃ

おもちゃで気軽にプログラミングを教えたい

子供にとって、プログラミングの重要性はますます高まっていますが、「プログラミング教室はちょっとハードルが高い」と感じている方も多いのではないでしょうか。

そこで、「もっと手軽にプログラミングを子供に体験させたい」という方におすすめのおもちゃをご紹介したいと思います。

おもちゃでプログラミングは学べるのか?

おもちゃと聞くと、「一種の遊びでプログラミングとは程遠いんじゃないか」と感じる方もいらっしゃるでしょう。

しかし、これから紹介する「プログラミングを学べるおもちゃ」は、幼児からでも無理なくプログラミングを楽しく学べるおもちゃばかりです。また、パソコンやタブレットがなくてもプログラミングが学べるという点も魅力的です。

動画で使用方法などをチェックできるので、「親子で一緒に楽しめるかな?」「自分の子供が興味を持てるかな?」といった不安を事前に確認することができます。ご興味のある方は、ぜひ一度、購入前にチェックされてみてはいかがでしょうか。

ThinkFun(シンクファン)

ThinkFun(シンクファン)というおもちゃメーカーは、子供が遊びを通して論理的思考や数理的理解能力を高めることを狙ったおもちゃを販売しています。

おもちゃのシリーズは大きく5つに分かれており、幼児から大人も楽しめるよう難易度が分かれているという特徴があります。

コーディング・シリーズ(Coding Series)

ThinkFun(シンクファン)が出しているおもちゃの中で、もっともプログラミングに近いおもちゃがコーディング・シリーズ(Coding Series)です。

コーディングとは、プログラミングをする際に、人がコンピューターでも理解できるように命令文を書くことです。この命令文は、C言語やJavaScript、RubyやPythonといった「プログラミング言語」を使用してコンピュータ画面にキーボードを使って打ち込みますが、この行為そのものがコーディングに当たります。

このコーディング・シリーズは、パソコンやタブレットなどの電子機器を用意しなくてもコーディングの要素を学ぶことができます。

コーディング・シリーズ(Coding Series)には、様々なおもちゃが用意されていますが、その中でも今回は「3歳からのプログラミング〜ロボットタートルズ〜」についてご紹介したいと思います。

3歳からのプログラミング〜ロボットタートルズ〜

この「3歳からのプログラミング〜ロボットタートルズ〜」は、プログラマーは子供、プログラムに沿って動くコンピュータ役は大人、という役割が分かれていることが大きな特徴となっています。

子供が指示した内容(プログラム内容)がまちがっていると、コンピュータに扮した大人は全くの役立たず。その様子を見て、プログラムに間違いがあること、どうすれば目的を達成できる正しいプログラム内容になるのかをゲームを通して学ぶことができます。

プログラムを書く→プログラムを動かす→プログラムの間違いに気づく(バグの発見)→プログラムの間違いを直す(バグの修正)→プログラムを再度動かす、というまさにプログラマーが日々行っている行動の流れを遊びながら学ぶことができます。

実は、このコーディング・シリーズはGoogleのプログラマーが開発したことでも有名です。

ラッシュ・アワー・シリーズ(Rush Hour Series )

ラッシュ・アワー・シリーズは、論理的思考力を鍛えること目的に作られているおもちゃです。カードと車のおもちゃ、そして車のおもちゃを並べるボードの3つで構成されています。

このおもちゃは、「カードに表示された車の配置から、どのように指定した車を脱出させるか」を読み解くパズルです。5歳〜向け・8歳〜向けが用意されています。

このラッシュ・アワー・シリーズからプログラミングに活かせるところは、ビジュアルプログラミングで使用される

  1. 座標の概念が学べること
  2. 目的を成し遂げるためのシミュレーション能力を繰り返しによって鍛えられること

などをあげることができます。

言葉で座標などの概念を幼い子供に理解させるのは苦難の技ですが、このようなおもちゃを通して体感して学べる点は大きなメリットがあると感じています。

値段は、3500~25000円(税抜き)と大きなばらつきがあります。

メイズ・シリーズ(Maze Series)

メイズ・シリーズは3つのおもちゃが用意されています。その中でも、特にプログラミング教育に役立ってくれそうなおもちゃは「サーキット・メイズ(CIRCUIT MAZ)」です。

このおもちゃは、電子回路を組み立てるパズルゲームになっています。電子回路というといかにも難しそうですが、要は電気がプラスからマイナスに流れるというルールに則って、電気が通るようにおもちゃのパーツを当て込んでいくというおもちゃになります。

このように、電子機器の根本的な電子回路に関して学んでおく事は、日本が世界に引けを取らないメカ制御の分野で能力を活かせる可能性を秘めています。

また、小さい頃から遊びの一環として電子回路が身近なものにしていることは、最近日本教育で危ぶまられている「理科離れ」などを防ぐ要素になると考えられます。

私自身、ハードとソフトを学べる大学に進みましたが、電子回路の概念を習得するまで(慣れるまで)に多くの労力を費やした苦い過去があります。

現在の生活にあまりに身近になってしまった電気という存在を、幼い頃から理解することで、興味の範囲・興味の深さが格段と上がることは言うまでもありません。

電子回路が学べる「サーキット・メイズ(CIRCUIT MAZ)」の値段は、5200円(税抜き)です。

算数&英語・シリーズ(Mathematics English Series )

算数&英語・シリーズは、その名の通り、算数と英語を学ぶことを目的に作られているおもちゃです。難易度別におもちゃが構成されており、最も易しく算数に特化したバランス・ビーンズというおもちゃを紹介します。

このおもちゃは「シーソーに豆をどのような配置で乗せたら、バランス良くなるか」を考えます。物理でいうテコの原理をシーソーという身近なものを通して学ぶことができ、8歳〜向けが用意されています。

バランス・ビーンズというおもちゃからプログラミングに活かせるところは、シーソーのバランスを保たせる配置を考える最に、「テコの原理を利用して、目的を達成するために必要な計算を行う」という点です。実際にテコの原理を理解する必要はなく、「シーソーがバランスを保つためにはこんなルールがあるんだよ」ということを伝えれば、このおもちゃを容易に楽しむことができるようになります。

プログラミングは、ある操作をコンピュータに命令して実行させるための命令文を書くという行為ですが、ある操作をコンピュータが正しく理解できるように噛み砕き、計算をさせることがほとんどです。

また、ロボットなどは様々な物理法則を利用しながらプログラミングしますので、おもちゃを通して物理的な感覚を習得できると、ロボット工学などに興味を持つきっかけになる可能性があります。そこまでいかなくとも、学校で物理を学ぶ際に、遊びを通して学んだ物理的センスを生かして、理論がすんなりと頭に入ってくるというメリットが考えられます。

その他に用意されているゲーム

その他にも、ThinkFun(シンクファン)には空間計算力や論理的数理力などを鍛えることを期待できるおもちゃが揃っています。

紹介したおもちゃから学べるプログラミング以外のこと

様々な能力を、強制されることなく子供の自発的な遊びの中から学びとることは、プログラミング能力を高めることだけでなく、様々な物事への興味関心・好奇心へとつながります。

その結果、勉強や学習というものが「仕方なく」「親・先生に言われたから」という義務から実施するものではなく、遊びの延長にあるものへと変わる可能性を秘めています。

プログラミング教育は何歳から始めるべきか?

よく、プログラミング教育を始める妥当な時期について質問される方がいます。

結論から言うと、平均的には9歳くらいからプログラミング教育をスタートするのが妥当とされています。その理由は、プログラミング教育を受けるにあたって理解しておくべき内容を理解するための能力が9歳未満の子どもには備わっていないケースが多く見受けられたからです。

例えば、「IF-THEN型(もし〜だったらー)」といわれる論理構成は、9歳あたりからではないと理解ができないというプログラミング教育者の意見があります。また、Scratch(子ども向けプログラミングソフト)の対象年齢は8歳以上とされています。

天才プログラマーは5歳からプログラムを学んでいた?

先ほど、一般的には9歳前後がプログラミング教育をスタートさせると良いという話をしましたが、これはあくまで現在のツールをそのままプログラミング教育の場に転じることが前提条件となります。というのも、論理構成がわからなくても、ボタンを1クリックするだけでプログラムが動くことを体感として知ることは、幼児がテレビのリモコンのボタンを押すとテレビが点いたり消えたりすることを知ることとあまり変わらず、理解できないレベルではありません。

また、このような「生活の様々な場面でプログラミングが活躍していること」を知っておくことは、プログラミングへの興味を強める大切な下地になると考えています。

つまり、年齢(もっと言えばその子の理解度)にあわせてプログラミング教育の内容を適応させていくことは可能であるため、理解度に合っていれば、小学校低学年からでもプログラミング教育を始めることは可能だと感じています。

実際に、日本で天才プログラマーと言われる人たちの中には「5歳からプログラミングを学んでいた」という人もいるほど・・・。

好奇心の強い子どものうちに、世の中にプログラムされたものが多く存在し、それらが人々の生活を豊かにしていることを感じ取ることが、プログラムを使った問題解決能力を培う一歩だと感じています。

本格的なプログラミング教育に必要な3つの能力

では、本格的にプログラミング教育を受けようと思った時に、どのような能力が必要になるのでしょうか。

様々なヒアリング結果から、以下3つの要素が重要であることがわかってきました。

  1. 論理的思考力、抽象的思考力等の認知能力
  2. アルファベット等の文字利用の習熟
  3. プログラミングに関するスキル・知識

段階的なプログラミング教育の指導方法

先に紹介した「プログラミングに必要な3つの能力」要素を踏まえて、総務省が提唱している段階的な指導方法について紹介します。(参照:プログラミング人材育成の在り方に関する調査研究報告書 総務省調べ)

①論理的思考が身につく前(3歳〜9歳頃)

プログラミング体験型

グラフィックス操作を試しならが、その結果の動きを確認し体験を通じてプログラミングに親しむ。主な教材・ツールはViscuit(タブレット)等

創造性育成型

簡単な操作で利用できるビジュアルプログラミング環境を自由に使い、アニメーションの創作などを通じて、創造性を養う。遊びや表現を通して楽しみながら学ぶ、個性を伸ばす。主な教材・ツールはViscuit(タブレット)等

②論理的思考ができる時期(9歳〜)

自主性育成型

論理的構成を必要とするビジュアルプログラミング環境を用いて、自主性を重視し、指導者は基礎的なサポートのみ行い、自由にプログラムを作成させる。主な教材・ツールは、Scratch 等ビジュアル言語、EV3 レゴマインドストーム等

スキル習得型

Scratch 等を用いて(1)教材学習、(2)オリジナル開発、(3)発表会などのステップアップによりビジュアルプログラミングを学ぶ。スクール型、複数回のイベント型などがある。カリキュラムと教材を体系化(オリジナルテキスト、市販テキスト)している。主な教材・ツールは、Scratch 等ビジュアル言語

課題設定・解決力育成型

作りたいモノや目標を最初に具体化し、その後、Scratchなどのツールを用いて実現することにより、問題設定力と段取り力を身につける。主な教材・ツールは、Scratch 等ビジュアル言語、設計図・企画シート

協調性・表現力育成型

子供の交流、子供同士の共同作業を重視し、ファシリテーターはサポート中心。成果の発表により協調性や表現力を育成する。主な教材・ツールは、Scratch 等ビジュアル言語、Viscuit

忍耐力・解決力育成型

問題に突き当たっても、子供が自ら試行錯誤により解決策を見出せるようなサポートをすることで、忍耐力、解決力を養う。主な教材・ツールは、Scratch 等ビジュアル言語、EV3 レゴマインドストーム等

③テキスト型言語が使える時期

スキル習得型

以下3つのステップによって指導を行う。主な教材・ツールは、Java 、Objective-C、HTML5 等テキスト言語

  • 基礎概念の習得
  • 全体構成と実践
  • オリジナルアプリ開発

モチベーション向上型

指導員(メンター)とのコミュニケーションや、アプリ・リリース、アプリ甲子園など外部とのつながりを通じて、モチベーションを高める。主な教材・ツールは、Java、Objective-C 等テキスト言語

課題設定・解決力育成型

どのようなプログラムを作るか(What)を考えてから、どのようにプログラミングするか(How)を考えるようにする。主な教材・ツールは、テキスト言語