「プログラミング教育」についてまとめてみた(学校編)
こんにちは!子どもと共に未来を育む 共育コンサルタントの金澤です。
プログラミング教育、かなり世の中に浸透してきました。おそらく皆さんもどこかで耳にしたことはあると思います。ですが、ふとこんなことを感じたことありませんか?
・小学校のうちからカタカタキーボードでプログラムするの?
・そもそもプログラミング教育なんてやる必要あるの?
・プログラミング教育って何をやるの?何が身につくの?
・学校でどんなことをやるの?それに向けて準備は必要なの?
・習い事としてプログラミングやらせた方がいいの?
ニュースでは割とセンセーショナルに取り上げられていますが、これらの問いに正確に答えられる人は非常に少ないのではないでしょうか。
国が出している文書は、あいも変わらず文字ばかりで、これを読め!となるとなかなか体力が必要です・・・三つ目のリンクはプレゼン資料でパワーポイントなのですが、これでもなかなか大変です。。。
参考資料:小学校プログラミング教育の手引(第三版)(文部科学省)
参考資料:小学校プログラミング教育に関する概要資料(文部科学省)
参考資料:新学習指導要領における小学校プログラミング教育(総務省HPのリンクより:地域におけるIoTの学び推進事業成果発表会)
かくいう私は、2017年〜2018年に大手学習塾で教務部長を務めていました。そのときにもすでに、世の中にはプログラミング教育のコンテンツがたくさん出ていて、塾で何かできないかを考えるために、市場調査をしていました。それこそ国が出している文書を読んだり、実例を探したり、展示会でコンテンツを見たり・・・といろんなプログラミング教育に触れました。
そこで、その経験を生かして、国が出している・目指しているプログラミング教育の文書の中から、勝手に重要なところを抜粋して、簡潔にまとめて皆様にお伝えしようと思って、本稿を執筆しました。
最後までお読みいただければ、学校で進められているプログラミング教育について詳しくなり、安心して子どもたちの取り組みを見守ることができるようになります。 ぜひ最後までお読みください!
小中高全てでプログラミングに触れる
まず最初に気をつけて欲しいのは、プログラミング教育は小学校だけで導入されるものではありません。2020年に新しく始まるのが小学校なのでそれが取り沙汰されているだけで、2020年〜2022年にかけて、小・中・高全てでプログラミングに取り組むことになっています。
具体的には、このような内容が発表されています。
・小学校では文字入力など基本的な操作を習得、新たにプログラミング的思考を育成(2020年から)
・中学校では技術・家庭科(技術分野)でプログラミングと情報セキュリティなどの内容を充実(2021年から)
・高校では情報科に共通必履修科目「情報Ⅰ」を設定、全生徒がプログラミング・ネットワーク・データベースの基礎などについて学ぶ(2022年から)
つまり、小学校でプログラミング教育が始まるぞ〜!ではなく、小中高でプログラミングとかネットワークについて授業が行われるぞ〜!というのが正しい言い方となります。
注目すべきは、中学校では技術・家庭で、高校では情報で、とどの科目で扱うかが明記されている一方、小学校ではその科目指定がないことです。これはどういうことかというと、小学校では「各教科の特性に合わせて」計画的に実施されることになっているためです。
つまり、算数でも国語でも体育でも図工でも、「ICTの基本的な操作」「プログラミング的思考」を身につける活動が入ってくるわけです。具体例としてどのように行うのか、というイメージはこの後の章でご説明します。
プログラミング教育を学校で導入する目的は?
では、このような教育内容をわざわざ国が学校に導入する、と決めた目的はなんなのでしょうか?
それはズバリ、「情報活用能力の育成」です。
この情報活用能力というのは、このように定義されています。
※ 「情報活用能力」は、コンピュータ等の情報手段を適切に用いて情報を収集・整理・比較・発信・伝達したりする力であり、さらに、基本的な操作技能やプログラミング的思考、情報モラル、情報セキュリティ、統計等に関する資質・能力等も含むもの(学習指導要領解説の要約)
簡単にいうと、
・タブレットやスマホを適切に使いこなせるようになること
・情報に関するモラルやセキュリティの考え方などを身に着けること
・プログラミング的思考ができるようになること
などのことです。
情報活用能力は、言語能力(読む書く話す聞く)と同じく、新指導要領では「学習の基盤となる資質・能力」に位置付けられています。この力を身につけることで、より学びを効率的に・深く進めることができ、ひいては変化の激しい時代でも主体的に取り組めるようになる、というわけです。
一般的にプログラミングと呼ばれる、JavaScriptとかhtmlとかPythonのような「プログラミング言語」を学ぶことがゴールではありません。学びをより高いレベルに上げ、変化の激しい次世代でも通用するような力や資質を身につけるための方法を、プログラミングを通じて学んでいくことを目指している、と理解してください。
↑こういう「プログラミング言語」を学校でやるわけではありません!
学校でプログラミング教育に取り組むことになった背景
ここまで読んできて、「それ学校でやらなきゃいけないの?」と思われる方がいるかもしれません。なぜ学校でやることに決めたのか、という背景もきちんと理解した方が、取り組みを前向きに捉えられると思いますので、それもご紹介します。
大きく分けて、学校でプログラミング教育に取り組むことになった背景は二つあります。それは
・社会の変化・技術革新への対応
・「学び方」を変える必要性
です。
これからの世の中は、急激な技術革新によって変化が激しく、予測することが難しくなってきています。例えばコンタクトレンズへのコンピュータ埋め込み、人体へのICチップ埋め込みなどは実験が行われる段階になっていますし、ロボットも発展するAI技術を背景に徐々に社会進出してきています。
冷蔵庫にも、電子レンジにも、エアコンにも、コンピュータが入っています(こういう機器をIoTと言います)。気づいたら、周りのものにはほとんどコンピュータが入っている時代になりました。
コンピュータがあるところには、プログラミングが100%あります。なぜならプログラミングとはコンピュータを動かすための命令文書だからです。つまり、身の回りには目に見えないだけで、無数のプログラミングがあり、それによってコンピュータが統制・制御されている、というわけです。
今から10年後、20年後はもっともっとこれが進んでいることでしょう。そんな時代に社会で生きる今の子どもたちには、このプログラミングという考え方を早い段階で知ってもらい、コンピュータに使われるのではなく使いこなせるようになってほしい。そんな想いが今回のプログラミング教育実施のベースにあります。
もう一つの背景は、学び方について。今までの学校での学び方は、一方的に授業を聞き、受け身的で、記憶が重視される形でした。しかし、こういう形の学びだけでは、進歩していくロボットや人工知能に仕事を取られてしまい、できることが少なくなってしまいかねません。
2011年にアメリカの小学校に入学した子どもは、65%が今は存在していない職業に就く(2011、Cathy Davidson)
今後10〜20年で、約半数の仕事が機械に取って代わられる(2013、Carl Benedict Frey & Michael Osborne)
この二つの話は有名な話になりましたが、もう今の子どもたちが大人になる頃にはこんな世の中になっているわけです。
ロボットや人工知能にできないと言われている分野は、クリエイティブや能動的に意志を持つということ。その力を学校の中で育んでいくためには、今までの学び方だけでは十分ではなく、先を見据えた新しい学び方が必要になります。その一つが、ICT(情報通信技術)を使って主体的に学んでいく学び方です。
参考記事:ICTとは(GIGAスクール構想の記事内リンク)
パソコンやタブレットなどを使うことで、調べる・まとめる・発表するということができるようになり、主体的に取り組んで学びを深めていくことが可能になります。しかし、情報活用能力が身についていないと、新しい学び方ができず、昔ながらの学びしかできないことになってしまいます。
また、ICTを使うとなんでもできてしまう一方で、色んなリスクやデメリットも出てきます。社会に出たら必ずICT(パソコンやタブレット、スマホ)は使うことになるわけですから、きちんと子どものうちにリスクやデメリットを学ぶことで、将来間違った使い方をしたり、トラブルに巻き込まれたりすることを防ごうとする狙いもあります。これも情報活用能力の一つです。
前向きに・主体的に、自ら進んでより良い社会・幸福な人生を手に入れるための力を、子どもたちに身につけてもらいたい。これがSociety5.0を迎えるにあたり、今回プログラミング教育に取り組むことにした背景です。
小学校では各科目で実践
では、ここからは実際にどのような内容に取り組むのか、具体例を示しながら説明していきましょう。
前述の通り、小学校では「プログラミング」という科目ができるわけではなく、従来の算数や社会などの教科学習の中で、基本的な操作とプログラミング的思考を学ぶ取り組みが行われます。いくつか具体例を出しましょう。
例1)算数 正多角形を書く作業をプログラミングしてみる
・「正多角形を書く」という命令はない
・「線を◎◎引く」「右に□□度回る」を★回繰り返す、と一つ一つ作業を命令しないと正多角形を書くようには動かない
・◎、□、★などに入る数値を、授業で学んだこと(正多角形の一つの角度とか)を生かして計算して、実際にプログラミングしてみる。失敗してもOKで、試行錯誤しながら理解できるように促す
・キーボードは使わず、ビジュアルプログラミング(Scratchなど)を使用して、プログラミング的思考を育んでいく
例2)理科 電気を効率よく使うにはどうしたらよいか
・USB扇風機と人感センサーを使って、電気利用の効率化をどう達成すればいいか考えてもらう
・グループワークでアイデアを考え、まとめる
・実際にセンサーにプログラミングをしてみて、狙い通りに動くかどうかを確かめてみる
・うまく行かなければもう一度プログラミングの内容を確認し、何度も試してみることで、プログラミング的思考を育んでいく
・実際のアイデアと実験結果、そこから得られた考察などを発表する
例3)家庭科 家族で食べる朝食を考えよう
・鍋での炊飯はすでに学習済み
・自動炊飯器でどのようなプログラミングが行われているかを、Scratchで作られた「炊飯シミュレータ」を使って学んでいく
・ここから、生活の中にはいろんなプログラミングがあることに気づいてもらう
・プログラミングを通して、調理には段取りや手順が重要になることに気づき、調理計画を立てることにプログラミング的思考を生かせるようにする
ご覧になって、どのような感想を持たれたでしょうか。ただ机に座って前を向いて、説明を聞くだけの授業よりも実践的で、かつ学びが深くなるような気がしませんか?これが、新指導要領で描かれている「新しい学び」の具体例なのです。
参考リンク:小学校を中心としたプログラミング教育ポータル(上記の例はこちらのサイトに掲載されているものを引用しました)
一つ言えるのは、小学校で上記のような教育が行われることで、中学校に上がってきたときに「基本的な操作はできる」「プログラミング的思考(論理的思考)がある程度できる」に加えて、「コンピュータやプログラミングに一定の興味・関心が持てている」ことが期待できる、ということです。
これこそ「情報活用能力を育んでいく」ということですね。
「プログラミング的思考」とはなんなのか
上記の例では、「プログラミング的思考」という言葉がたくさん出てきました。この言葉は、小学校でプログラミング教育を始める目的になっているものでした(基本的な操作を学ぶことと、プログラミング的思考を育むことが小学校のプログラミング教育の目的)。
この言葉、なんなんでしょう?非常にあいまいな印象で、人によって全然思い浮かべることが違いそうなので、改めてこれも紐解いてみると、文部科学省が出している「小学校プログラミング教育に関する概要」文書にはこのように説明されています。
・自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
・・・わからないですね〜(笑)。簡単な例を出すと、
「明日は10時に東京駅で待ち合わせだから、9時55分には駅に着くようにしたい。家から最寄駅まで10分、最寄駅から東京駅まで電車で40分。最寄駅を9時7分発の電車があるから、家を8時55分に出るようにしよう」
こんな感じの思考です。ゴールから考えて、一つ一つの情報(何分かかるか・何分発の電車があるか)を正しい順番で繋いで、スタート地点で何をすればいいかを決めるわけですね。実際にはここに乗り換え時間、電車が遅れる可能性、混雑状況なども含める必要があるわけです。
この思考ができないと、ざっくりこのあたりの時間に出れば・・・としか考えられず、すごく早く着いたり遅れてしまったりということが出てきてしまいます。
電車の例はあくまで私が考えた例で、これをできるようにするために小学校でプログラミング教育をするわけではありません(笑)。しかし、社会人として活躍することを考えるとき、このような「論理的思考力」は確実に必要とされます。
小学校のプログラミング教育では、この論理的思考力を育むためにプログラミングを利用しようと考えているのです。前章で例に出した「正多角形」「電気の効率利用」「自動炊飯器」の話は、いずれもこの論理的思考力が必要となる話でした。楽しく、プログラミングというものを通じて、プログラミング的思考を育んでいっている、というわけです。
中学校では技術・家庭科(技術分野)で取り組む
ここまで小学校でのプログラミング教育の話を説明してきました。では、その先にある中学校や高校でのプログラミング教育はどうなっているのでしょうか。
いくつか出ている文面をまとめてみると、中学校では、技術・家庭科の技術分野、「情報の技術」という単元でプログラミングについて扱われます。
その中では「ネットワークを利用した双方向性のあるコンテンツのプログラミングによる問題の解決」、「計測・制御のプログラミングによる問題の解決」の二つがプログラミング教育となっています・・・が、これはわかりづらいですよね。
実は後者の「計測・制御」というのは、従来の中学校でも授業で扱っています。この単元で出てくる「フローチャート」は、神奈川県公立高校入試の特色検査や、公立中高一貫校の適性検査などの入試で出てくるようになっています。
参考リンク:プログラムによる計測・制御(Wikibooksより)
そして今回新しく入ってきたのが前者の内容です。文科省からは「ネットワークを利用した双方向性のあるコンテンツ」の具体例として、「パソコン室内で使用する文字チャットや複数人でコミュニケーションできるデジタル筆談ボードなどが実践例」という話が出ています。
デジタル筆談ボードって初めて見ました・・・これ学校ではガンガン使われているのでしょうか・・・
ここからは私見ですが、この「ネットワークを利用した双方向性のあるコンテンツ」という表現で思い浮かべるのは、TwitterやTikTokのようなSNSではないでしょうか。あるいはLINEなどチャットアプリも該当するでしょう。
このようなコンテンツを使って、情報セキュリティやモラル、あるいは問題解決にどう使っていくかなどを考える形であれば、非常に有用ではないかと思います。
高校では情報科で「必修科目」化
そして高校での内容もご紹介します。現在の高校の情報科は、「社会と情報」か「情報の科学」のどちらかを選択する形になっています。この二つのうち、プログラミングは「情報の科学」のみに含まれています。
そして、現状では「情報の科学」を選択する生徒は約2割程度とか。逆に言えば8割の生徒は、高校で一切プログラミングに触れずに卒業していく形になっています。
これを、新指導要領では「情報Ⅰ」という必修科目にし、プログラミングの内容を全生徒が学ぶことになりました(さらに学びたい人は「情報Ⅱ」を選択することが可能)。
下記に、高校でのプログラミング教育の内容が詳細に書かれている「教員研修用教材」のリンクを貼っておきますが(公表されているもの)、、、 もう私はわかりません。内容を見てもらうとわかりますが、かなり専門性が高いように(私には)感じます。
AND/OR/NOTとか2進法とかはまだいけますが、アクチュエータ?? WebAPI?? アルゴリズム?? 確定モデル?? ・・・やばいです私。このままだと赤点確実(^◇^;)
これを全員やることになるということは、当然定期テストが行われ、成績にも影響する・・・という仕組みの中に入ってくるわけです。なかなか革命的なことです。
ただこれも、10年後の未来を考えるとこの辺の知識がないだけで相当職業が限定されてしまったりするかもしれないので、ある意味常識的なことになっていくのかもしれません。
参考リンク:「コンピュータとプログラミング」教員研修用教材(文部科学省HPより)
情報がまとまっているサイトのまとめ
文部科学省 教育の情報化の推進 ※今回紹介したものも含め公式の文書がまとまっています
小学校を中心としたプログラミング教育ポータル ※事例集があります
みらプロ(未来の学び プログラミング教育推進月間 特設サイト) ※「総合的学習の時間」におけるプログラミング教育の事例集があります
この記事が気に入ったらサポートをしてみませんか?