よく、プログラミング教育を始める妥当な時期について質問される方がいます。
結論から言うと、平均的には9歳くらいからプログラミング教育をスタートするのが妥当とされています。その理由は、プログラミング教育を受けるにあたって理解しておくべき内容を理解するための能力が9歳未満の子どもには備わっていないケースが多く見受けられたからです。
例えば、「IF-THEN型(もし〜だったらー)」といわれる論理構成は、9歳あたりからではないと理解ができないというプログラミング教育者の意見があります。また、Scratch(子ども向けプログラミングソフト)の対象年齢は8歳以上とされています。
天才プログラマーは5歳からプログラムを学んでいた?
先ほど、一般的には9歳前後がプログラミング教育をスタートさせると良いという話をしましたが、これはあくまで現在のツールをそのままプログラミング教育の場に転じることが前提条件となります。というのも、論理構成がわからなくても、ボタンを1クリックするだけでプログラムが動くことを体感として知ることは、幼児がテレビのリモコンのボタンを押すとテレビが点いたり消えたりすることを知ることとあまり変わらず、理解できないレベルではありません。
また、このような「生活の様々な場面でプログラミングが活躍していること」を知っておくことは、プログラミングへの興味を強める大切な下地になると考えています。
つまり、年齢(もっと言えばその子の理解度)にあわせてプログラミング教育の内容を適応させていくことは可能であるため、理解度に合っていれば、小学校低学年からでもプログラミング教育を始めることは可能だと感じています。
実際に、日本で天才プログラマーと言われる人たちの中には「5歳からプログラミングを学んでいた」という人もいるほど・・・。
好奇心の強い子どものうちに、世の中にプログラムされたものが多く存在し、それらが人々の生活を豊かにしていることを感じ取ることが、プログラムを使った問題解決能力を培う一歩だと感じています。
本格的なプログラミング教育に必要な3つの能力
では、本格的にプログラミング教育を受けようと思った時に、どのような能力が必要になるのでしょうか。
様々なヒアリング結果から、以下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)を考えるようにする。主な教材・ツールは、テキスト言語