幼児期からのプログラミング教育とその意義について
はじめに
CGKインターナショナルスクールでは、『本物のグローバルキッズを育てる』ことを目的とし、その一環として2018年4月よりプログラミング教育をプリスクールの課外クラスで開始しました。2020年度より小学校の新学習指導要領が実施され、小学3年生から英語教育が必修化されていますが、同時にプログラミング教育も小学校で必修化されています。
英語学習については、昔から子供の習い事人気ランキングでも常に上位に位置しており、英語の重要性はなんとなくでも肌で感じている方が多いようです。実際に、2017年の訪日外国人数は2869万人、2018年は3119万人、2019年は3188万人と、コロナ前までは毎年大幅に増加しており、国内においても英語の必要性は増しています。
しかしながら、プログラミング教育の意義については、まだまだ認知不足であり、特に、幼児期から開始する必要性は感じてらっしゃらない方も多いかと思います。
英語が話せること自体も大切ですが、本当に重要なのは、その先にある『英語を使って何をするか、何が出来るか』です。そこでは、忍耐力、社交性、自尊心、探究心といった『非認知能力』も伸ばしていくことが重要である、と考えられており、非認知能力の重要性については世界的にも注目されています。
CGKでは、『本物のグローバルキッズを育てる』ことにおいて、語学(英語)や知識、特定のスキルを身につけるだけでなく(いわゆる「認知能力」)、非認知能力を伸ばすことが重要であると考えており、その両方を伸ばす教育として、プログラミング教育をプリスクールの課外クラスで開始いたしました。
なぜ幼児期から学ぶのか
まず、人生のあらゆる場面に深くかかわってくる非認知能力は、決して生まれ持った能力ではなく、意図的に育てることが可能です。そして、(認知能力もそうですが、非認知能力も特に幼少期に伸ばすことが重要です。CGKでは様々なカリキュラムを構築していますが、何故プログラミング教育を行うのか。これには2つ理由があります。
1つ目は、プログラミング的思考を身に付けるためです。プログラミング的思考とは、自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、どのように改善をしていけば、より意図したものに近づいていくのか、というように論理的に物事を考える力のことです。
2つ目は、試行錯誤を通して物事を深く探究する心を育てることです。試行錯誤を繰り返す「体験」が重要であり、そのことで、様々な物事から世の中の本質まで、深く追求する探究心を育むことができます。無関心や簡単に諦める心は、今後の成長の上でぜひ避けたいものです。
上記を纏めると、現代社会を生き抜く上で、認知能力だけでなく、非認知能力の向上を図るプログラミング教育は有益であり、根底となる能力を育むため、幼児期から行うことは重要です。
これらの能力を伸ばす方法はプログラミング教育に限りません。普段の園での集団生活における保育や教育も非常に大事であるため、CGKでは、プログラミング教育を普段の保育時間ではなく、課外クラスとして希望者の方のみに導入いたしました。
文部科学省のプログラミング教育に対する姿勢
前述に触れたように新学習指導要領に情報教育の分野が含まれています。新学習指導要領では、プログラミング教育の在り方として、下記のように謳っています。
プログラミング的思考とは、自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うように指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育成するもの
また、現在の世の中が情報技術によって支えられていることに(将来)気付くことや、こういった情報処理能力を育むことにより、従来学んできた知識や技能をより確実に身に付けさせる、ということもプログラミングに取り組むねらいの一つです。
今後自ら問題を発見し、答えや新しい価値を生み出す力が重要になる、という考えの基、従来の大学センター試験が廃止されたことや、これまで国語、数学、社会というように単一縦断型であった教育カリキュラムが、横断的な内容に変更されていくことから、今『教育』は大きな変革の時期を迎えていると言えます。
新学習指導要領が施行されることと共に、2017年3月には文部科学省・総務省・経済産業省が連携し、教育・IT関連の企業と共に『未来の学びコンソーシアム』が立ち上げられました。この目的としては、プログラミング教育を円滑に実施することが出来るよう、デジタル教材の開発促進や、学校における指導に向けたサポート体制構築を推進することです。
このことからプログラミング教育は国を挙げた重要なプロジェクトとして取り組まれており、その重要性を物語ってることが分かるかと思います。
CGKでプログラミングを学ぶ意味
CGKに通っている子供たちは、小学校受験対策、ダンス、水泳、音楽、バレエなど、様々な習い事を受けており、大人顔負けの多忙なスケジュールをこなす生活を送っている子もいます。人生先は長いといえども、土台を作る最も重要な時期ですので、より効果的、より効率的な環境を作り上げていくことは必須であると考えています。
そのためCGKでは『英語』でプログラミングを教えることにより、英語力(言語力)も鍛えつつ、思考力、探究心も同時に育んでいく内容となっています。
最終的に目指しているゴールとしては、以下のものを予定しています。
・自分の頭で考えたルール、遊び方を実現する。
・それを英語で解説出来るようにする。
これは想像力も必要となりますが、それを表現するためのステップを論理的に構築し、創り上げていく必要があります。また、自分で創ったものを解説する、ということは、自分の意見を主張することに繋がり、特に日本人が苦手とする自己表現力も向上させられることが期待できます。
ビスケットについて
CGKが採用しているプログラミング言語であるビスケットを紹介させていただきます。
まず前提として、小学生向けのプログラミング教室はかなりの数があり、それぞれが様々なプログラミング言語を採用しています。一方で幼児向けのプログラミング教室は、ほとんど存在していません。これは、幼児にはまだプログラミング教育を行うことは難しい、というわけではなく、幼児が理解することの出来るプログラミング言語がほとんど開発されていないため、です。
世の中には、JavaやRubyといった様々なプログラミング言語が存在していますが、子供にも理解が出来るように落とし込まれていったものがScratch、MOONBlockといったビジュアルプログラミングというものです。これらは主に小学生向けの言語ですが、ビスケットは幼児でも直感的に遊べるように、よりビジュアルに特化した言語となります。
ビスケットでは、『メガネ』と呼ばれるもので、左側から右側へ数字や絵の書き換えを行います。例えば以下の1から5の数字の羅列を小さい順に並べる、というプログラムを作るとすると、
以下のように、7つのメガネを準備し、並び変えたいように数字を左側と右側に置いていきます。下図左側一番上のメガネを見ると、左側に『21』右側に『12』があることが分かると思います。これは、『21』という数字の並びがあった場合、『12』に書き換える、という内容となります。
これを実行すると、上の図の10個の数字は以下のように並び替えられます。これがビスケットのプログラミングです。
単純に以下の図のように描いたものを動かしたり、変化をさせることも出来れば、
↓ ↓ ↓
下図のように簡単なゲームを創ることも出来ます。
または、下図のように幾何学模様を描くことも簡単にできます。
このようにビスケットは『メガネ』を使って、左から右へと『書き換える』という単純な仕組みであるからこそ、子供たちの想像力を掻き立て、様々な表現を直感的に形作ることが出来るようになります。
ちなみに上記の幾何学模様ですが、緑の三角マークがあった場合(左側)、少し左下に進みながら赤青の棒を置いていく(右側)というメガネを1つ使っただけの模様です。たった1つの書き換えだけで、このような図を描くことが出来るのです。
小学生向けのビジュアルプログラミング
ビスケットは小学生でももちろん遊ぶことは出来ます。その発展型、という表現は正式には正しくはありませんが、一般的に小学生向けと言われているプログラミング言語をご紹介します。
Scratch(スクラッチ)
世界的に一番有名と良いと言っていいほどの言語で、元々はマサチューセッツ工科大学のラボが開発したものです。
上図右側が命令にあたる部分(ビスケットで言うメガネ)で、この命令に従って左画面の絵が動きます。ビスケットに比べると、一般的なプログラミング言語に少し近づいたことが分かるかと思います。
MOONBlock(ムーンブロック)
MOONBlockは別名「前田ブロック」と呼び、とある前田さんにenchant.jsという仕組み(ゲームを作る土台の環境のようなもの)を教えようとしたところ、enchant.js以前のプログラミングにおける条件分岐などが理解することが出来なかったことが着想のきっかけとなったそうです。
Scratchと見た目や仕組みは同じように見えますが、Scratchはプログラミング言語のフローをビジュアル化し、概念を理解しましょう、というアプローチに対して、MOONBlockは、プログラミングがプロの世界でも通用することを最終目標としており、教育に特化した用途ではないことが特徴です。そういったことからビジュアル的に作ったプログラミングのフローは、同時にJavaScriptでソースが作られ、それをいつでも見ることが出来ます。
上図のプログラミングは、くまが上から降ってきて、左右に動く戦車に当たると小さくなる、というものですが、これが自動でJavaScriptでも作られます。
論理的思考力を身に付ける、という意味ではScratchもMOONBlockも同じ効果を得られることが出来ますが、プログラミングの世界のその先に進みたいのであればMOONBlockが良いかもしれません。
プログラミン
プログラミンは文部科学省が開発した子供向けの言語となります。仕様としては、基本的にはScratchと同じであり、UI(ユーザーインターフェース(見た目,使い方))が異なるくらいだと思います。これに関しては、子供の好き嫌いで分かれるかと思います。
まとめ
これまで子供向けのプログラミングについてお伝えしてきましたが、普段生活していく中で、意識してプログラミングに触れてこなかった方のほうが大多数かと思います。英語については、スプーン、フォーク、テーブルというように普段何気なく使っている言葉もあり、街にも英語表記は溢れかえっているので身近に感じることができますが、実はプログラミングも同様です。冷蔵庫や電子レンジなど、普段日常で利用している家電製品も、プログラミングがあってこそ稼働をしています。
冒頭で述べたように『プログラミングが出来るようになること』が幼児期からプログラミングを学ぶ目的ではありません。今後AIが世の中の半数以上の仕事を取って代わると言われている中、プログラミングを学ぶことにより(もしくは他の方法でも)、探究心、思考力を伸ばし、より高次元でクリエイティブな能力を身に付けていくことは非常に重要となります。
これまでプログラミングに触れてきたことがないと、幼児期におけるプログラミング教育の有用性に懐疑的になることもあるかと思いますが、CGKでは、このプログラミング教育を通して、『言語力』、『探究心』、『思考力』を伸ばし、『本物のグローバルキッズを育てる』環境を作り上げる一助でありたいと考えています。