なぜ今、子どもへプログラミングを習わせるのか
2020年度よりプログラミング教育が小学校で必修化されることもあって、現在注目を集めている「プログラミング」。プログラミング思考や問題解決能力を養い、これからの未来に対応できる人材育成を目的として取り入れられようとしています。
今回は、必修化の理由や子どもにプログラミングを習わせる目的やメリット、代表的な教材などを解説していきます。
なぜプログラミング教育は2020年から必修化されるのか
プログラミング教育が必修化される理由としては、日本の将来におけるIT人材の不足、それによる国際競争力の低下への懸念がまず挙げられますが、小学校教育において大きな要因のひとつとしては、「社会の大きな変化に対応できる人材の育成」が考えられます。
文部科学省の『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』によれば、近い将来、人工知能やロボット技術が発展することで、社会のあり方が大きく変化し、それまで人間の仕事とされていたものをAIやロボットが担うようになる。そうなった場合、現在の学校でおこなわれている教育を受けた人材では通用しなくなってしまうのではといった不安の声が多くあったそうです。
これらの声を受けて、同資料では「現在、社会や産業の構造が変化していく中で、私たち人間に求められるのは、定められた手続を効率的にこなしていくことにとどまらず、自分なりに試行錯誤しながら新たな価値を生み出していくことであるということ、そして、そのためには生きて働く知識を含む、これからの時代に求められる資質・能力を学校教育で育成していくことが重要である」としています。
要は「受け身の姿勢ではなく、積極的に自分自身で考え、問題を見つけ、解決方法を見出し、実際に解決する」能力が求められているわけですが、これを達成するためには、後述する「プログラミング思考」や「問題解決能力」の育成が必要不可欠です。そのため、この能力の養成に適したプログラミングが注目され、必修化されるに至っているのです。
出典:文部科学省『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』
プログラミング教育の目的
「プログラミング」と聞くと、コードを書く(コーディング)といったイメージを持たれる方も少なくないでしょう。しかし、プログラミング学習の目的は「コーディングができる」ようになることではありません。
『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』でも、以下のように明確に記されています。
「プログラミング教育とは、子供たちに、コンピュータに意図した処理をおこなうよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない」
出典:文部科学省『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』
また、これからの時代を担う子どもには、ますます身近になっていくであろう情報技術を効果的に活用することが必要であり、複雑な文脈から情報を読み解き、論理的・創造的に考えることで、解決するべき問題や解決方法を見出す力が求められるとしています。
その力を育むための鍵となるのが、先程の引用でも登場した「プログラミング思考」です。
同資料によれば、プログラミング思考とは以下のように定義されています。
「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」
出典:文部科学省『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』
プログラミングをする際には、処理対象の細分化や、処理実行のための繰り返しや条件分岐などを行います。この、複雑な物事を細分化して解きやすくする点や、解決すべき課題のなかで何が重要なのかを導き出す思考過程は、別の分野にも応用することが可能です。
プログラミング教育とは、あくまで「プログラミングの知識・スキル」をメインに学ぶことではなく、主として「プログラミング思考」を身に付け、問題を見つけ、解決する能力を養うことが目的となっています。
プログラミング教育の具体的な内容や事例
文部科学省の『幼稚園教育要領、小・中学校学習指導要領等の改訂のポイント』によれば、プログラミング教育のポイントは以下のように記されています。
・コンピュータ等を活用した学習活動の充実(各教科等)
・コンピュータでの文字入力等の習得、プログラミング的思考の育成(小:総則、各教科等(算数、理科、総合的な学習の時間など))
出典:文部科学省『幼稚園教育要領、小・中学校学習指導要領等の改訂のポイント 1.今回の改訂の基本的な考え』
要約すると、コンピュータの基本スキルを身に付け、算数や理科、総合的な学習の時間などの科目と連携してプログラミング思考を学びましょうということです。
ただ、この文言だけだと具体的なイメージに欠けますので、いくつかの事例を以下で紹介していきます。
杉並区立西田小学校(東京都)
杉並区立西田小学校では「正多角形をプログラムを使ってかこう」という授業がおこなわれました。
内容としては、教員がどのようにプログラムを書くかと教えるのではなく、生徒たちが「どのようにプログラムを書いたら作図できるか」を考え、プログラミング言語のScratchを用いて辺の長さと角度を指定し、正多角形を作図したそうです。
参考:『正多角形をプログラムを使ってかこう(杉並区立西田小学校) | 小学校を中心としたプログラミング教育ポータル』
横浜市立白幡小学校(神奈川県)
横浜市立白幡小学校では、「電気を無駄なく使うための工夫を考えよう」をテーマにして、電気の変換についての理解を深め、観察や実験などの技能を身に付けるための授業がおこなわれました。
明るさ・温度・地磁気・加速度センサーが搭載され、ウェブブラウザでプログラミングができるmicro:bitという教材が使用され、生徒は電灯のスイッチを入り切りするにはどのような手順でプログラミングをしたらよいかを考え、実際にプログラミングをしています。
参考:『電気を無駄なく使うための工夫を考えよう(横浜市立白幡小学校)』
府中市立住吉小学校(東京都)
府中市立住吉小学校では、日産自動車株式会社の協力のもと、「自動車に搭載された技術と私たちの生活を便利にするプログラム」という学習内容が組まれました。
本授業では、実際に日産の追浜工場を訪問したり、安全・安心のための技術にはどのようなプログラミングが用いられているのかを日産自動車の研究者がレクチャーしたりと、社会科見学の要素も盛り込まれています。
プログラミング面では、生徒たちがロボットカーを走らせるプログラムを考え、目的地まで走行させることに成功しました。
参考:『自動車に搭載された技術と私たちの生活を便利にするプログラム』
このように、ひとくちに「プログラミング教育」といっても、実に多彩なアプローチがあります。
子どもがプログラミング学習をおこなうメリットについて
ここまでは、プログラミング教育が必修化する理由や目的、内容や具体的事例などを解説・紹介しました。本項では、子どもがプログラミングを学ぶメリット・デメリットについて触れていきます。
【メリットその1】プログラミング思考が身につく
まず挙げられる大きなメリットには、繰り返しにはなりますが「プログラミング思考」が身につく点が挙げられます。上述もしたとおり、プログラミングの考え方や思考パターンや、コンピュータに関する基礎知識・スキルなどはさまざまな面で応用が効きます。
『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』でも、プログラミング思考は、将来的にプログラミングに携わる職業を志す子どもだけでなく、どのような職種を選ぶとしても、これから大きな変化を迎える時代において、共通に求められる力であるとされています。
参考:文部科学省『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)』
【メリットその2】問題解決能力が身につく
基本的に、プログラムは「書かれたとおりに」動きます。これは言い方を変えると「書かれたとおりにしか動かない」ということ。
つまり「こう動いて欲しい」といった目的と違う結果になった場合、それはプログラムに問題があるということです。ここで生じた問題を解決するためには「何が間違っているか」という問題を見つけ、修正しなければなりません。
この問題を見つけ、修正し、再度検証し、問題を解決していく過程は、プログラミングのみならず、あらゆる仕事の局面で応用することができますから、プログラミング思考と同様に大きなメリットだといえるでしょう。
【メリットその3】創造力・想像力が育まれる
プログラミングは基本的に「カタい」と思われがちですが、実際は大きく違います。大雑把なくくりにはなりますが、音楽を作るソフトや、ゲーム、アニメなどは、かなり大きな割合でプログラミングが用いられています。
また先進的な例を挙げるならば、近年話題のプロジェクションマッピングやMR(複合現実)なども、映像制作とプログラミングの技術を用いて作られています。
このように、プログラミングはただコードを打ち込み命令を下すだけでなく、「こうしたい」と頭で想像したことを現実に創造できる手段でもあるのです。この想像・創造力に関しては、AIやロボットでは担えないとされている領域ですから、これからの時代においては、とくに人材が求められていくことでしょう。
このほかにも、モノを作ることの楽しみや集中力を養えること、吸収力が高いうちに、これから必要になるIT知識を取り込めるなど、さまざまなメリットが挙げられます。
プログラミング教育におけるデメリットは誤解が多い
プログラミング教育のデメリットとしては、「プログラミング関連の授業に時間を割くことで、基礎学習がおざなりになってしまわないか」といった意見が挙げられます。また、コンピュータ上で学習をすることは「実体験」として弱く、幼少期においては五感を使った体験をたくさんするべきであるなどの指摘もされています。
さらに、プログラミング言語やコーディングは時代によって変わっていくものなので、プログラミング教育は無駄になってしまうのではないか、という意見も見られます。
しかし、これまで説明してきた事項から、上記の多くは誤解であるといえます。たとえば、プログラミング思考を身に付けることで、基礎学習内容をより素早く、深く理解することが可能でしょう。また五感に関しては事例で挙げたように、体験型の学習とともにプログラミングを学ぶ授業スタイルが多くとられています。
さらに言語やコーディングなどに関しては、『小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ』において「コーディングを覚えることが目的ではない」と明言されています。
またPCやタブレットの扱いやタイピングなどは、生涯にわたって普遍的に使える知識やスキルであるといえるでしょう。
子どもプログラミング教材には、どんなものがあるのか?
上述した事例で挙げたプログラミング教材のほかにも、教育現場やプログラミング講座などではさまざまな教材が採用されています。本項では、文部科学省・総務省・経済産業省が提供しているウェブサイト「小学生を中心としたプログラミング教育ポータル」の「教材情報一覧」を参考に、実際に授業で採用されている教材を紹介します。
出典:参考
Scratch(スクラッチ)
Scratch(スクラッチ)は、MITメディア・ラボが公開しているビジュアルプログラミング言語です。
キーボードではなくマウスを主として使用するため、「PCに触るのがはじめて」といった子どもでも直感的な操作が可能。1画面だけでプログラム作成・実行・修正などがおこなえるため、プログラミングにおける一連の流れを確認しやすい点もメリットです。
実施事例としては、上述した杉並区立西田小学校の「正多角形をプログラムを使ってかこう」で使われていますし、横浜市立西富岡小学校で実施された「電気を効率よく使うにはどうしたらよいかを考えよう」などの授業でも採用されている教材です。
【情報】
ツールタイプ:ビジュアル言語
無料 / 有料:無料
動作環境:ブラウザ / Windows
日本語対応:有
対象年代:未就学〜高校生
公式サイト:Scratch - Imagine, Program, Share
BBC micro:bit (マイクロビット)
BBC micro:bit (マイクロビット)は、イギリスのBBCによって開発された小型コンピュータです。
小さな基盤には温度・加速度センサーや無線通信機能、コンパスなどさまざまな機能が搭載されています。
本教材は、マイクロビット本体にプログラミングしたデータを転送し、実際に動作させることができるため、体験型の学習教材だといえるでしょう。
事例としては、岡崎市男川小学校でおこなわれた、プログラミング制御できる車を作る授業や、千葉大学教育学部附属小学校の天体観測要方位磁石のプログラミングなどがあります。
【情報】
ツールタイプ:テキスト言語 / ビジュアル言語
無料 / 有料:有料
動作環境:ブラウザ
日本語対応:有
対象年代:小学校高学年〜高校生
公式サイト:Micro:bit Educational Foundation | micro:bit
Swift(スウィフト)
Swift(スウィフト)は、Appleが開発したiOS・macOSなどのアプリケーション開発用のプログラミング言語です。
Appleでは小中高等学校教育向けに、スウィフトを使った教育プログラムである「Everyone Can Code」などを提供しており、生徒用だけでなく教師用ガイドも用意されています。
ほかの教材と比較すると、数字・アルファベット・記号などを入力して動作させるので、やや難易度が高いといえますが、根気よく学べば、いずれはiPhoneやiPad用のアプリを作ることもできるでしょう。
実施事例としては、沖縄県でおこなわれた「大学の無い地域における工業高校生メンターの育成を通じた持続可能なプログラミング教育のエコシステムづくり」、愛知県で開催されたプログラミング講座「コース選択制による創造的プログラミング教育の普及推進」などが挙げられます。
【情報】
ツールタイプ:テキスト言語
無料 / 有料:無料
動作環境:macOS / Windows / Linux
日本語対応:無
対象年代:小学校高学年〜高校生
公式サイト:教育 - 小中高等学校 - コードを教える
まとめ
今回は、子どもにプログラミングを習わせる目的やメリット、代表的な教材などを解説しました。繰り返しになりますが、プログラミング教育とは、ただ単純にコードを書くわけではなく、これからの時代に必要な「プログラミング思考」を養うために重要です。
とはいえ、まだまだ教える側のレベルや、学校側がどの程度IT化しているかなど、現場によって多少の差があるのが現実です。
その差を払拭するためや、小学校以前から子どもにプログラミングを学ばせたいといった方は、今回紹介した教材を使って一緒に学習してみたり、プログラミングスクールなどへの入会を検討してみるのもおすすめできる選択肢です。