2020年度から小学校でプログラミングの授業がスタートします。しかし実際には、最初からパソコンでプログラミングそのものを行うわけではありません。
親世代の私たちにとっては未体験である「小学生でのプログラミング」、一体どんな方法で行われていくのでしょうか?

「我が子はついていけるだろうか……」なんて不安になるかもしれない新導入の授業について、ここではプログラミング教育がスタートする理由や、実際に授業ではどんなことを行うのかご紹介します。また、最近注目を集めている英語学習とプログラミングの相互性についても合わせて解説していきます。

「プログラミング」とは一体なに?

三省堂の大辞林で”プログラミング(Programming)”について調べると、

”コンピュータのプログラムを作成すること。プログラムの仕様の決定、誤りの修正などの作業を含めていうこともある。”

と定義されています。
パソコンでプログラムを作成することで、作業する人間が機械に対し、処理を行うよう指示することができるのです。

さらに分かりやすく、料理に例えてみましょう。
《素材》である(ソースコード:「ソースプログラム」とも呼ばれており、元となる文字列のこと)を使って、《調理》(コーディング:プログラムのためにソースコードを記述する作業)をすることで、《料理》(プログラミング)が完成します。この料理を組み合わせたものが《コース料理》(システム:ハードウェア、ソフトウェア、OS、ネットワークなど全体の構成)です。

このように、プログラミングはシステムの一つとして捉えられており、Webサイトの構築やアプリケーション、ゲームソフト、システム、AI、ロボットなどの分野で使用されているのです。

プログラミングで使用されている「言語(ソースコードを伝えるための言葉)」は250言語以上あり、主に「C言語」や「C++」「Java」「Python」などが有名です。ちょうどこの記事の最初にある画像のように、指示を書いて実行すると、機械は正確に・順番通りに指示をこなしていきます。間違った指示を書くとエラーに、効率が悪い指示を出してしまうと処理に時間がかかる、またはバグが発生することもあります。

プログラミングにはこうした「組み立てる力」も必要となるため、単純にソースコードを暗記するだけの勉強以外にも大切な要素を数多く含むのです。

幼い子供達にプログラミングを学ばせる理由とは?


小学校から「総合的な学習の時間」を中心に必修化されるプログラミングですが、なぜこのような低年齢の頃からプログラミングを学ぶ必要があるのでしょうか。
ここからは、プログラミングを小学校から学び始める”理由”についてご紹介します。

プログラミングの技術を習得させるのが目的ではない

文部科学省による「小学校学習指導要領解説」では、

”小学校段階において学習活動としてプログラミングに取り組むねらいは、プログラミング言語を覚えたり、プログラミングの技能を習得したりといったことではなく、ー”

とはっきり書かれています。
続いて、

”論理的思考力を育むとともに、プログラムの働きやよさ、情報社会がコンピュータをはじめとする情報技術によって支えられていることなどに気付き、身近な問題の解決に主体的に取り組む態度やコンピュータ等を上手に活用してよりよい社会を築いていこうとする態度などを育むこと”

さらに、

”教科等で学ぶ知識及び技能等をより確実に身に付けさせることにある。”

と述べられています。

つまり小学校の段階では、論理的思考力(ロジカルシンキング)を育むことがおもな目的であるというのです。

この論理的思考力においては

  • 関連付け
  • 比較
  • 類似
  • などの構成、そしてプログラミングの世界で使う

  • シーケンス(順序)
  • ループ(繰り返し)
  • 条件分岐など
  • の考え方が非常に重要になります。
    これらを効率的に取得するためには、既存の教科学習の中にプログラミング教育を埋め込むことで、自然と身についていくのです。

    また初等教育の段階でプログラミング教育の高度化をすることで、情報社会へのインフラ理解が大幅に進みます。すると、高等教育や職業教育(例えばIT教育)との接続の円滑化も期待できるのです。

    論理的思考「ロジカルシンキング」で、多方向から問題にコミット!

    論理的思考(ロジカルシンキング)とは、「物事を論理的に考えてみる」といった単純な思考法ではありません。ある問題を解決するために多方向から解決策を検討、フレームワークなど体系立てて整理し、矛盾なく進めていくといった考え方です。

    この思考法は、第4次産業革命とも言われているIoT(Internet of Things)による多種機器のデータ交換、メガデータ採取と利用、AI(人工知能、Artificial Intelligence)利用の本格化、またロボットの高次利用が進むなか、多くの企業から注目を集めています。

    このロジカルシンキングを伸ばすためには、

  • 分析力
  • 問題解決能力
  • 提案力
  • コミュニケーション力
  • 生産性
  • などが影響すると言われています。

    専門的で少し小難しい話になりますが、ロジカルシンキングには2パターンの手法「帰納法」「演繹(えんえき)法」が使用され、さらに2種類のフレームワーク「ピラミッドストラクチャー」「ロジックツリー(要素分解ツリー、原因究明ツリー、イシューツリー)」など、量や質を整理・分解した関係にも着目した手法を使う必要があります。

    このように特殊な思考手法が必要になるため、小学校という低年齢の時期からプログラミングを通じて身につけることで、大人になってからも自然と活用できることが今必要とされているのです。

    海外におけるプログラミング教育の状況は?


    経済協力開発機構(OECD)のPISA(学習到達度調査)で高評価を受けているフィンランドの場合、2016年から小学校におけるプログラミング授業が必修化しており、1~2年生はプログラミング的思考(指示)、3~6年生はScratch等、7~9年生はプログラミング言語を学んでいます。

    イギリスでは、小学1〜2年生から簡単なプログラムの理解と作成、デバッグなどがスタートし、小学校3~6年生はプログラムの設計や作成、デバッグ、コンピューターネットワークの理解と応用などが行われています。

    そしてインドでは、初等教育でも世界標準のビジネスソフトの使用を経験させるなど、実用性の高い教育がすでに行われているのです。

    このように、初等教育におけるプログラミング教育はコーディング(最初の画像にあるプログラミング画面のようなコードを記述する作業)を習得するのでなく、プログラミングの基本となる「考え方」を、シミュレーションで習得しようとするものが主となっています。

    近年はヨーロッパからアジア各国、アメリカや南米など世界中でプログラミングを含むICT(情報通信技術)に関する知識の勉強がスタートしているのです。

    プログラミング授業では実際に何をする?

    プログラミング教育では、各教科で育む資質と能力の”3つの柱”、つまり

  • 1.「知識及び技能」
  • 2.「思考力、判断力、表現力など」
  • 3.「学びに向かう力、人間性など」
  • に沿った学習がとられていきます。単純にコードを学ぶのではなく、これから子供たちの未来に必要とされる要素を授業で学んでいくのです。

    では、それそれの能力ごとにどんな目的があるのか見ていきましょう。

    知識及び技能

    コンピュータの使用自体は、今はもう当たり前。しかし、実際にパソコンの中では何が起こっているのか理解して使用している子供は少ないでしょう。

    これからの情報社会に生きる子供たちに、コンピュータはプログラムで動いていること、身近な生活にもコンピュータが活用されていること、そして問題の解決には必定な手順があること、体験を通して気付かせることを重要としています。

    思考力、判断力、表現力

    発達の段階に即して「プログラミング的思考」を育成することが目的です。コンピュータに対し、意図した処理を行わせるために必要な論理的思考力(プログラミング的思考)の育成を核としています。

    コンピュータへの命令の組合せを考える際には、命令を順序立てたり、条件を設定して命令を分岐させたり、さらには命令内容を繰り返させたりすることなどが含まれますが、ここではプログラミングを支える基本的な要素を得ることに重点を置いた授業を行います。

    学びに向かう力、人間性等

    子供にとって身近な問題の発見や解決のために、コンピュータの働きを生かして活用しよりよい社会を築くなど、主体的に取り組む態度を自然に身につけることを目的としています。

    また、他者と協働しながらねばり強くやり抜く態度の育成や、著作権等の自他の権利を尊重したり、情報セキュリティの確保に留意する、といった情報モラルの育成などにも取り組みます。

    自然と英語が身につく!?プログラミングから英語に親しめる!


    子供向けのソフトであれば一部日本語でもプログラミング体験ができますが、実際の社会で使用されているプログラミングのコードは全て英語です

    そこで、自分の思い通りに動かせる「プログラミング」を楽しみながら、「英語」も一緒に身につけることができる教室が注目を集めています。ここでは、プログラミングと英語の関連性についてご紹介しましょう。

    コードで英単語が覚えられる

    プログラミングの画面を目にしたことがない方向けに、世界で最も有名な初歩的なコードをご紹介します。

    #include
    main( )
    {
    printf(“hello, world\n”);
    }

    引用:Kernighan, Brian W.; Ritchie, Dennis M. (1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall.

    これは、パソコンの画面に「hello,world」と表示される簡単なコードです。「main」や「print」など、英語を学んだ経験がある大人にとって「簡単な英語」が使われています。

    しかし、全く英語を学んだことがない小学生には、まずその単語の意味から理解する必要が出てきます。そこで、英語でそのままプログラミングを学ぶという取り組みが行われているのです。英語をコードとして学ぶことで単語そのものの本質がわかり、より理解を深めながら覚えることができます。専門用語など学校では学ばない単語もプログラミングで活用しながら覚えることができるので、いろいろな単語が身につくのです。

    英語を学ぶことは、プログラミングに好影響とされている論理的思考力の向上にもつながります。日本語と英語とでは文法が異なり、英語では主語から述語と結論を述べた後、装飾する言葉が続きます。接続詞による順接や逆説など、順序を意識した文章の組立を行うことで、プログラミングにも役立ってくるのです。
    英語を暗記するように頭に叩き込んでいくのではなく、プログラムを動かすために必要なコードを単語として覚えていくため、自然に身についていくというわけなのです。

    現在では、英語圏でプログラミングを習得しているネイティブスピーカーらによる、”プログラミングと英会話を同時に学習できる教室”が数々開校しています。自分の思うように動かせるプログラミングをゲーム感覚で楽しみながら、英語も同時に学ぶことができるため、プログラミングの必修化に伴い人気が出ているようです。

    プログラミング授業におけるこれからの「課題」

    とはいいつつ、小学校からのプログラミングの授業に対して、懸念を抱く専門家も多くいます。それは未だ子供達が効率良くプログラミングを学べる方法が確立していないからです。

    まず「プログラミングに関して素人である小学校の先生の説明で、子供たちが理解することができるのか?」という課題があります。また、プログラミングのコードは「英語」を使用しているため、前章とは逆に、英語に対する抵抗感によってプログラミング学習の障壁にもなってしまうことについても懸念されているのです。

    このように、授業がスタートした後さまざまな問題点や課題が多く挙げられていくことが予想されていますが、それは諸外国でも起こりうることです。
    まずは、プログラミング思考を身に着けることを目的とし、「プログラミングの技術の習得は、将来の選択肢の一つとして子供たちに可能性を与えることができる」というスタンスで見守っていくのが大切だと思われます。

    遊びながら学べる!未就学児向けプログラミング教材

    小学校1年生からプログラミング教育がスタートしますが、先進国では5歳から教育が始まっているなど、未就学児向けのプログラミング教材も発売されすでに展開されています。

    キュベットーPrimo Toys

    出展:キュベット https://www.primotoys.jp/


    例えば、3歳児用として英国で発売されている「Cubetto(キュベット、上記画像参照)」というオモチャがあります。木製ボードには6×6のマス目があり、そこに「コーディング用ブロック」をはめ込むと、その指示通りにキュベットというロボットが動いてくれるのです。12個までの命令を与え、出発マスから目的のマス目まで到達するプログラミング体験ができます。
    大人も楽しめそうなこのオモチャで、入学までに「機械に指示を出すこと」に慣れておくのもよいでしょう。

    また、フィンランドのプログラマーが書いた「ルビィのぼうけん」という絵本は、5歳頃の子供におすすめです。プログラミングに関する重要概念の解説の後に、それが現実の問題解決にどのように活かせるかなど、課題を通じて体験することができます。

    絵本やオモチャなどで直感的に、そして自然にプログラミングの基礎的な体験ができる教材は、低年齢の頃から楽しめます。親子で楽しみながら取り入れてみるのもおすすめです。

    まとめ

    小学校から難しいプログラミングコードを書かないといけないのか、といった心配をするご両親も数多くいらしたのではないでしょうか。実際には、まずコンピュータを身近な生活から感じ取り、プログラミングに必要となる考え方(論理的思考)が自然と身につくような取り組みがメインとなります。

    将来多くの企業から求められるであろうこの思考力を身につけられるよう、親自身も、小学校で学ぶ目的や目標を把握し、サポートしてあげてください。

    ________________________________________

    【参考・引用・関連リンク】
    「これで大丈夫! 小学校プログラミングの授業 3+αの授業パターンを意識する[授業実践39]」小林祐紀、 兼宗進、 白井詩沙香、 臼井英成 編集

    大岩元(2017)小学生からのプログラミング教育、情報教育シンポジウム 2017年8月 p191-195
    https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=182958&item_no=1&attribute_id=1&file_no=1

    堀田裕史(2018)今後の初等・中等学校におけるプログラミング教育、富山短期大学紀要第 54 巻, p44-59
    https://toyama-c.repo.nii.ac.jp/?action=repository_action_common_download&item_id=331&item_no=1&attribute_id=22&file_no=3

    Kernighan, Brian W.; Ritchie, Dennis M. (1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall.

    小学校プログラミング教育の手引(第二版)平成30年11月文部科学省

    クリックして1403162_02_1.pdfにアクセス

    ■小学校プログラミング教育の概要1


    ■小学校プログラミング教育の概要2

    小学校段階におけるプログラミング教育の在り方について
    小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議
    https://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/attach/1371901.htm

    LINEで送る