おすすめ書籍紹介
- ブログ
『プログラミング教育』
(AI時代に不可欠な「自ら創る力」の育て方)
著者紹介:石嶋洋平 2017年 小学生向けプログラミング教室「プロスタキッズ」を設立。
総務省主催による「若年層に対するプログラミング教育普及推進」事業認定として
プログラミング教育も行っている。
中学校では、2012年度から「技術・家庭科」で「プログラムによる計測・制御」が必修となり、
そして、2020年度(今年度)より小学校でプログラミング教育が必修化された。
文部科学省の「小学校段階におけるプログラミング教育の在り方について」
(議論の取りまとめ)の資料には、
「プログラミング教育とは子どもたちにコンピューターに意図した処理を行うよう
指示することが出来るということを体験させながら、将来どのような職業に就くとしても、
時代を越えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、
コーディング(プログラミング言語を用いた記述方法)を覚えることが目的ではない。」
(小学校段階における論理的思考力、創造性や問題解決能力等の育成とプログラミング教育に関する有識者会議より)
プログラミング的思考を育むための教育として位置付けている。
――プログラミング教育の学習プロセス――
- コンピューターにやってもらいたい動きを決める。
- その動きを実現するためには、どの記号をどのように組み合わせればいいのか考える。
- 実際にプログラムを書く。(プログラミングする。)
- コンピューターを動かしてみる。
- 不具合があればその原因を考える。
- プログラムを修正する。
プログラミング教育でこうしたプロセスを学習することにより、物事を
論理的に考えたり、目的を達成するための手順を描いたり、知識や情報を整理したりする力が身に付く。
「どのようなプログラミングをすればよいか。」「なぜ動かないのか。」
「どうすれば動くようになるのか。」といったことを試行錯誤することによって、
「自分の頭で考える力」が育まれるようになる。
そして、プログラミング教育をすでに実施している私的教育機関(プログラミングスクール)から
「プログラミング教育が子どもたちにもたらした影響について」報告が上がってきている。
- 物事を論理的に説明できるようになった。
- 物事の手順や効果を意識して考えられるようになった。
- 大きな課題を小さな課題に分解して理解できるようになった。
- ミスを受け入れられるようになった。間違いを恐れなくなった。
- 自ら修正を重ねて作り上げていく姿勢が見られるようになった。
- つくる側での立場で考えられるようになった。など。
つまり、「問題発見力」「問題解決力」「論理的思考力」「表現力」といった
「考える力」が出てくるようになった。
次に、プログラミング教育を通して育成された能力は、
AI時代にどのように活かされていくのであろうか。
総務省プログラミング教育を進める担当者は、プログラミングの必要性について、
「これからの世の中は人工知能やロボットが発達し人間が担ってきた仕事が取って代わられていく。
人工知能やロボットと上手く共存していくためにもそれらを動かす基本的な原理である
プログラミングを学ぶ必要がある。」と説明している。
これは、ICT(コンピュータ技術の活用方法)のことを指している。
(補説)「IT」も「ICT」もほぼ同じ意味だが、
「IT」は「インフォメーション・テクノロジー」の略称、
コンピューターやインターネットを利用して、仕事や生活に役立てるための技術のこと。
「ICT」はインフォメーション・アンド・コミュニケーションテクノロジー」の略称で、情報伝達技術のこと。
※AI時代に活躍する人材は大きく二つに分かれる。
「IT」技術を通してAIを創造する技術者になること。IT人材の不足が社会の課題になっている。
「ICT」を通してAI社会でもわたり合える能力を付けること。
2020年プログラミング教育の必要性は「STEM教育」を小学生向けに噛み砕いたものと言われている。
——-「STEM教育」について———
「STEM教育」は、「将来社会にでる子ども達が、ハイテク分野の世界のリーダーとして活躍すること」
を目的とした教育である。
Science(科学)・Technolgy(技術)・Engineering(工学)・Mathematics(数学)の4つの理数系教育に力を入れ、科学技術やビジネスの国際競争力の高い人材を育成する。
科学、技術、工学や数学の学問領域を個別に学ぶのではなく、それぞれを関連付け横断的、体系的に学ぶ教育のことを「STEM教育」と呼ぶ。
日本のプログラミング教育も、STEM教育の一環と考えられている。
最後に、繰り返しとなるが、「プログラミング教育で身に付く能力」について具体的に確認しておきたいと思う。
- 目標設計/設定力(目的意識)
プログラミングは、他の教科よりも、「何のために勉強するのか(何のためにプログラミングするのか)」
という目的が明確である。
算数の公式や歴史の年号など、「何のために覚えなければならないのか」「本当に役に立つのか」が
分からないことが応々にしてある。
目的・目標があいまいなまま勉強していたため勉強に身が入らなかった。
しかし、プログラミングは何を作るのか、何を目指すかという目的・目標がはっきりしている。
しかも、自分のやりたいことを目標にするためモチベーションが上がる。(=目標は行動の源泉)
- 論理的思考力(筋道を立てて考える力)
目標につながるよう、逆算思考で物事の流れや因果関係を考える。
論理学を体系化した古代ギリシアの哲学者アリストテレス「三段論法」
(二つの前提から結論を導き出す思考法)を使う。
三段論法の例.
大前提:すべての動物は生物である。
小前提:すべての人間は動物である。
結 論:すべての人間は生物である。
※プログラミングの目標に当たるのが、三段論法の結論。
「結論⇒小前提⇒大前提」の結論の流れ(因果関係)を考えてプログラミングしてみる。
- 数学的思考力(数字・式・図に置き換えて物事を理解する。)
物事を数字に置き換えて説明してみる。数字に置き換えると状況が把握しやすくなる。
X軸・Y軸を使い各象限に配置する。各象限にキャラクターを登場、動きを付けゲーム化する。
こうして状況を把握⇒分析⇒課題の発見⇒課題解決のプロセスが視覚化され、見えやすくなる。
※図やキャラクターを登場させることで右脳が活性化される。
- 問題解決力(問題を発見し、解決する力)
上記3の段階で課題解決のプロセスがいくつか見出せるようになった。
そのうち、いくつかのプロセスでは解決に到らないことが分かってくる。
その原因が何であるのか、分析することが必要となってくる。
○「なぜ、だめなのか。(キャラクターを登場させているので、なぜ動かないのか)。」
↓
○「どうすれば動くようになるのか。」仮説を立てる。
↓
○仮説にしたがって、「プログラムの組み替え作業」を行う。
↓
○「それでも動かなければ、もう一度検証する。」
※「検証」「仮説」「実行」のサイクルを何度も繰り返す。
プログラミングは、自分の興味・関心・好きなこと・やってみたいことを自由に発想し、
創造性や独創性を伸ばしてくれる。
(=集中力が高くなる)(=クリエイティブ力が付く)
好きなことだから自分から積極的に行動するようになる。
(=主体的行動力)
プログラミング教育は、「子どもたちの才能を引き出す最高の学び」だと言える。