プログラミング教育必修化!小学校で押さえておきたい3つのポイント

プログラミング

この記事では、プログラミング教育の3つの目的を具体的に解説しています。
エンジニア目線での内容も含めて書いていますので、プログラミングがよく分からない方にも、プログラミング教育とは何かを理解いただけると思います。

プログラミングとは??

「プログラミング」とは、コンピュータに指示を出して動かすための方法やルールのことです。

コンピュータは人間の言葉をそのまま理解することができません。
そのため、「プログラミング言語」というコンピュータ用の言葉を使うことで、こちらの指示通りに動かすことができるようになります。

たとえば、料理をするときの手順を考えてみましょう。
「材料を切る」「フライパンで焼く」「お皿に盛り付ける」といった順番があります。
これを細かく決めて指示するのがプログラミングです。

りお
りお

コンピュータは言われた通りにしか動かないので、「何を」「どの順番で」「どう動かすか」をしっかり考えて伝えることが大切です。

なぜプログラミングが大事なのか?

今の社会では、スマホや家電、車、ネットサービスなど、色々なものがコンピュータによって動いています。
これらはすべて、プログラミングによって制御されています。

プログラミングを学ぶことで、

  • 物事を論理的に考える力
  • 問題を効率よく解決する力
  • 自分のアイデアを形にする力

などが身につきます。

りお
りお

ただコンピュータを動かすだけではなく、クリエイティブな力も鍛えられます!

プログラミングの基本的な考え方

プログラミングを学ぶ上で大切な考え方に、「アルゴリズム」と「データ構造」があります。

  • アルゴリズムある問題を解決するための手順や方法のこと。たとえば、効率よく荷物を詰める方法や、最短で目的地に着くルートを考えるのがアルゴリズムです。
  • データ構造:コンピュータの中でデータを整理して管理する仕組みのこと。適切なデータの整理方法を選ぶことで、プログラムの処理がスムーズになります。

プログラミングを始めるには?

初心者でも取り組みやすいプログラミング言語には、「Scratch」「Python」「JavaScript」などがあります。

  • Scratch(スクラッチ):ブロックを組み合わせてプログラムを作る、初心者向けのビジュアルプログラミング言語。ゲームやアニメーションを作るのに向いています。
  • Python(パイソン):シンプルな文法で学びやすく、AI(人工知能)やデータ分析、Web開発などに使われる人気の言語。
  • JavaScript(ジャバスクリプト):Webサイトを動かすための言語で、ブラウザ上でのインタラクティブな動作を作成できます。

プログラミングを学ぶことは、単にコードを書くことではなく、「考える力」や「問題を解決する力」を養うことにもつながります。

りお
りお

興味のある分野から少しずつ学び、実際にプログラムを書いてみることが大事です。

プログラミング教育の目的

文部科学省では「プログラミング教育」の指導要領を公開しています。
この中の「小学校プログラミング教育の手引(第三版)」  に、小学校でのプログラミング教育における目的が3つ書かれています。

  1. プログラミング的思考」を育むこと
  2. プログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと(プログラミングの働きや良さを気づかせること)
  3. 各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすること(プログラミングを実践的に活用できること)

勘違いしやすいポイントとしては、これらの目的にはプログラミング言語CやPythonなど)の習得そのものは含まれていないという点です。

全編を読んでも分かりますが、国語や算数のように「プログラミング」といった科目が増えるということではなく、あくまで「プログラミング的思考」を育成することに重点が置かれています。

ここでの「プログラミング的思考」とは以下のように定義されています。

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力

小学校プログラミング教育の手引(第三版)

では、1.~3.について詳しく解説していきます。

①「プログラミング的思考」を育む

「プログラミング的思考」は生活をしていく中でも意識せずに実践しています。

例えば、料理のレシピなどがそうです。
レシピには、ある料理を完成するまでの手続きが書かれていて、一つずつ順を追うことで目的を達成できます。
「プログラミング的思考」は、料理のレシピを作っていくような考え方と思ってもらえたら分かりやすいかもしれません。
料理のレシピも時短をするために工程を省いたりすると思いますが、そのような考え方も 「プログラミング的思考」 に含まれています。

りお
りお

料理のレシピも立派なプログラミングですね!

「プログラミング的思考」には、目的を達成するための課題の理解→抽象化→分解が必要になります。
このような一連の思考プロセスも「プログラミング的思考」には必要になります。

今度は別の例として、「2020年がうるう年か判別したい」という目的があったとしましょう。
この目的を達成するためには、そもそも「うるう年が何か」や「うるう年となる条件」が分からなければ、うるう年かを判別することはできません。
人間がうるう年かを判別する場合は、単純にカレンダーを見れば分かりますが、コンピュータに対しては、うるう年と判断するための条件を教えてあげる必要があります。

国立天文台のホームページから、以下の条件に該当した場合がうるう年となります。

グレゴリオ暦法では、うるう年を次のように決めています。
(1)西暦年号が4で割り切れる年をうるう年とする。
(2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。

質問3-6)どの年がうるう年になるの?

このように「うるう年を判別する」ためには、「うるう年となる条件の特定」が必要になることが分かると思います。
さらに「うるう年となる条件」が、上記の(1)と(2)になることが分かったので、コンピュータに指示するためのプログラムを組めるようになります。

りお
りお

学生時代のプログラミングの最初の課題が、このうるう年を判定するプログラムでした。
当初は概念が全く理解できず、かなり苦労した記憶があります。

プログラミングでは、大きな課題を小さな複数の課題に分解し、各課題をコンピュータが理解できるレベルまで落とし込んでいく必要があります。
プログラミングで最も難しくて重要な作業がこの部分になります。
必修化されるプログラミング教育もこのような思考能力を向上させることを目的としていると思います。

この能力はIT業界だけで必要な能力ということではなく、すべての業界や仕事に応用することができます。
だからこそ、プログラミング教育を必修化した取り組みがスタートしたのだと考えています。

②プログラミングの働きや良さを気づかせる

これは生活する上で必要最低限となるITリテラシー(キーボードやマウス操作など)を習得することと考えています。
これはインターネットやスマートフォン、タブレットの普及によって、急激にICT化が進んでいることが背景にあります。

小さい子にとっても、スマートフォンやタブレットは好きなアニメや音楽が無限に出てくるオモチャです。
好きなコンテンツをひたすら見たり聞いたりすることができますので喜びますよね。

りお
りお

ただ、あまりに集中しすぎてしまうので、人の話を聞かなかったりすることもあります。。

もちろんそれを危惧している親御さんもたくさんいらっしゃいますので、利用を禁止したり、制限をつけたりしているご家庭もあると思います。
ですが、まわりの友達までは制限することはできませんので、もはやこの流れは止められないのかなと思います。

こんな魔法のようなオモチャが、どのようなロジックで動いているのかを興味として持ってもらえるかは、ITエンジニアとしても次世代の人材を育てていく上では重要と感じています。

若い世代ではキーボードやマウスに慣れていない人も多くなっていると聞きます。
キーボードやマウスがなくてもやりたいことが実現できるなら触らなくて当然かも。。とも思いますが、ICT化が進むなかで、企業がキーボードやマウスの使い方などを教えてくれるわけもなく、やはり最低限のITリテラシーは必要という認識です。

③プログラミングを実践的に活用できる

この目的を実現するためには、やはり実際にプログラムを組む演習が効果的と思います。

プログラミング教育の手引きでは「Scratch」が例として出ていました。
最初からコーディングを伴うようなプログラミング言語から入るのは敷居が高いので、このようなビジュアルプログラミングから入ってもらうのは良いと思います。

Scratchなどは実際のモノではない仕組みを制御する演習ですが、ロボットのような実際のモノを動かす演習も人気のようです。
ロボットの動きをプログラミングで制御するような演習になりますので、実際にモノとして動くことを見ることができた方が、直感的に楽しいと感じでもらえそうですね。

りお
りお

今は無料で学習できるサイトも豊富にあります。
アワーオブコードなどがおすすめです。

まとめ

長くなってしまいましたが、プログラミング教育の3つの目的を解説してみました。

小学校レベルでは子供たちにプログラミングの概念や興味を持ってもらうことが最大の焦点と感じています。
自分もITエンジニアの端くれとして、未来のエンジニアに興味を持ってもらえるような活動をしていきたいですね。

プログラミングスクールをまとめました。
Pythonなどのプログラミングを学ぶことで実現できることの幅が広がりますので、
参考にしていただければと思います。

コメント

  1. […] 小学校プログラミング教育の3つの目的を解説【親御さん向け】プログラミ… […]

タイトルとURLをコピーしました