この記事では、プログラミング教育の3つの目的を具体的に解説してみました。
エンジニア目線での内容も含めて書いていますので、プログラミング教育とは何かを少しでも理解いただけたら幸いです。
プログラミング教育の目的
文部科学省では「プログラミング教育」の指導要領を公開しています。
この中の「小学校プログラミング教育の手引(第三版)」 に、小学校でのプログラミング教育における目的が3つ書かれています。
- 「プログラミング的思考」を育むこと
- プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと(プログラミングの働きや良さを気づかせること)
- 各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすること(プログラミングを実践的に活用できること)
勘違いしやすいポイントとしては、これらの目的にはプログラミング言語(CやPythonなど)の習得そのものは含まれていないという点です。
全編を読んでも分かりますが、国語や算数のように「プログラミング」といった科目が増えるということではなく、あくまで「プログラミング的思考」を育成することに重点が置かれています。
なお、ここでの「プログラミング的思考」とは以下のように定義されています。
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
小学校プログラミング教育の手引(第三版)
では、1.~3.について詳しく解説していきます。
1.「プログラミング的思考」を育む
「プログラミング的思考」は生活をしていく中でも意識せずに実践しています。
例えば、料理のレシピなどがそうです。レシピには、ある料理を完成するまでの手続きが書かれていて、一つずつ順を追うことで目的を達成できます。
「プログラミング的思考」は、料理のレシピを作っていくような考え方と思ってもらえたら分かりやすいかもしれません。
料理のレシピも時短をするために工程を省いたりすると思いますが、そのような考え方も 「プログラミング的思考」 に含まれています。
もう少し深堀りますと、「プログラミング的思考」には、目的を達成するための課題の理解→抽象化→分解が必要になります。
このような一連の思考プロセスも「プログラミング的思考」には必要になります。
今度は別の例として、「2020年がうるう年か判別したい」という目的があったとしましょう。
この目的を達成するためには、そもそも「うるう年が何か」や「うるう年となる条件」が分からなければ、うるう年かを判別することはできません。
人間がうるう年かを判別する場合は、単純にカレンダーを見れば分かりますが、コンピュータに対しては、うるう年と判断するための条件を教えてあげる必要があります。
国立天文台のホームページから、以下の条件に該当した場合がうるう年となります。
グレゴリオ暦法では、うるう年を次のように決めています。
質問3-6)どの年がうるう年になるの?
(1)西暦年号が4で割り切れる年をうるう年とする。
(2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。
このように「うるう年を判別する」ためには、「うるう年となる条件の特定」が必要になることが分かると思います。
さらに「うるう年となる条件」が、上記の(1)と(2)になることが分かったので、コンピュータに指示するためのプログラムを組めるようになります。
プログラミングでは、大きな課題を小さな複数の課題に分解し、各課題をコンピュータが理解できるレベルまで落とし込んでいく必要があります。
プログラミングで最も難しくて重要な作業がこの部分になります。必修化されるプログラミング教育もこのような思考能力を向上させることを目的としていると思います。
この能力はIT業界だけで必要な能力ということではなく、すべての業界や仕事に応用することができます。だからこそ、プログラミング教育を必修化した取り組みがスタートしたのだと考えています。
2. プログラミングの働きや良さを気づかせる
これは生活する上で必要最低限となるITリテラシー(キーボードやマウス操作など)を習得することと考えています。これはインターネットやスマートフォン、タブレットの普及によって、急激にICT化が進んでいることが背景にあります。
小さい子にとっても、スマートフォンやタブレットは好きなアニメや音楽が無限に出てくるオモチャです。好きなコンテンツをひたすら見たり聞いたりすることができますので喜びますよね。
ただ、あまりに集中しすぎてしまうので、人の話を聞かなかったりすることもあります。
もちろんそれを危惧している親御さんもたくさんいらっしゃいますので、利用を禁止したり、制限をつけたりしているご家庭もあると思います。
ですが、まわりの友達までは制限することはできませんので、もはやこの流れは止められないのかなと思います。
こんな魔法のようなオモチャが、どのようなロジックで動いているのかを興味として持ってもらえるかは、ITエンジニアとしても次世代の人材を育てていく上では重要と感じています。
若い世代ではキーボードやマウスに慣れていない人も多くなっていると聞きます。
キーボードやマウスがなくてもやりたいことが実現できるなら触らなくて当然かも。。とも思いますが、ICT化が進むなかで、企業がキーボードやマウスの使い方などを教えてくれるわけもなく、やはり最低限のITリテラシーは必要という認識です。
3. プログラミングを実践的に活用できる
この目的を実現するためには、やはり実際にプログラムを組む演習が効果的と思います。
プログラミング教育の手引きでは「Scratch」が例として出ていました。
最初からコーディングを伴うようなプログラミング言語から入るのは敷居が高いので、このようなビジュアルプログラミングから入ってもらうのは良いと思います。
Scratchなどは実際のモノではない仕組みを制御する演習ですが、ロボットのような実際のモノを動かす演習も人気のようです。
ロボットの動きをプログラミングで制御するような演習になりますので、実際にモノとして動くことを見ることができた方が、直感的に楽しいと感じでもらえそうですね。
まとめ
長くなってしまいましたが、プログラミング教育の3つの目的を解説してみました。
小学校レベルでは子供たちにプログラミングの概念や興味を持ってもらうことが最大の焦点と感じています。自分もITエンジニアの端くれとして、未来のエンジニアに興味を持ってもらえるような活動をしていきたいですね。
ちょっとだけ言い訳
自分の考えではないところは可能な限り正確に書き留めていきたいと思っていますが、直接教育現場に携わっているわけではありませんので、教育現場観点で誤りや語弊がありましたらぜひご指摘ください。また、自分の考えとなる部分は、あくまで私個人の見解と思って大目に見ていただけますと幸いです。
コメント
[…] 小学校プログラミング教育の3つの目的を解説【親御さん向け】プログラミ… […]