Vol.259-1 プログラミング教育
山梨県立大学国際政策学部 学部長
国際教育研究センター長
八代 一浩
1.はじめに
プログラミング教育に関する話題がメディアに取り上げられることが多くなった。教育現場でも、2020年度から小学校で必修化されるのに伴い、研修や研究会が開催されている。小学校で行われるプログラミング教育は「プログラミング的思考を育成する」ことを目的としており、プログラミングができるようになることを目的とはしていない。一方で、小学校でプログラミングを教える必要があるのか、などと質問されることも多く、誤解も多くあるように思われる。本稿では、小学校で行うプログラミング教育についての説明と、現状(2020年2月1日)の課題等について紹介する。
2.プログラミング教育とは
プログラミング教育が行われるようになった背景や目的について、まず簡単に説明する。そして、これに対応した文部科学省の取り組みについても説明する。
2-1.Society 5.0
現代社会はSociety 5.0に入ったと言われている。内閣府のホームページによると、Society5.0 とは「サイバー空間(仮想空間)とフィジカル空間(現実空間)を高度に融合させたシステムにより、経済発展と社会的課題の解決を両立する、人間中心の社会(Society)」と定義している[1]。狩猟社会(Society 1.0)、農耕社会(Society 2.0)、工業社会(Society 3.0)、情報社会(Society 4.0)に続く、新たな社会を意味してSociety 5.0と名付けられている。
現在、スマートフォンやAIが広く日常的に活用されるようになり、我々の日常生活が大きく変化している。例えば、音楽や映画はCDやDVDで視聴して楽しむ時代からインターネットを経由してダウンロードして楽しむものに変化している。旅行に行くにもホテルや航空券はスマートフォンから予約するようになり、入国審査や出国審査ではAIが画像認識を行うようになっている。支払いもスマートフォンがあれば決済できるようになった。この変化に伴い、CDショップ、レンタルショップ、旅行代理店、銀行などの業界は変化せざるを得ない状況になっている。
Society 5.0の中で活躍する人材にはこれまでの教育で育成していた能力とは違う能力が求められるようになった。これが現在行われている教育改革である。教育改革は小学校のプログラミング教育だけでなく、中学、高校、大学まで含めた広い改革である。
2-2.STEM教育
Society5.0に必要な人材を育成する教育プログラムとしてSTEM教育がある。STEMとはScience, Technology, Engineering and Mathematicsの頭文字で、科学・技術・工学・数学の教育分野を総称する語であり、2000年代に入ってから注目されるようになっている教育モデルである[2]。プログラミング教育もこの教育モデルの中に位置付けられている。
現代社会はこれらの技術を前提に社会が構成されるようになっている。インターネットやスマートフォンがあることを前提としたシステムとなっているのが現状である。そのため、一般市民でもこれらのシステムを安全で有効に活用できる教育が必要となっている。また、産業育成を考える場合には、新しい技術を開発したり、これらのシステムを活用して新しいビジネスモデルを開発したりすることができる人材が求められるようになっている。
2-3.学習指導要領
小学校学習指導要領解説総則編[3]において、小学校のプログラミング教育の目的は、「子どもたちが将来どのような職業に就くとしても時代を超えて普遍的に求められる『プログラミング的思考』を育むため」としている。また、プログラミング的思考とは、「自分が意図する一連の活動を実現するために、どのような動きの組み合わせが必要であり、一つひとつの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組み合わせをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」としている。
つまり、「プログラミング的思考」の育成とは、我々が一般的に行う問題解決のプロセスをプログラミングを通じて育成することである。問題解決のプロセスは一般的には図1のようにまとめられる。
プログラミングの過程をこの図にあてはめて考えてみる。問題として、例えば、「正三角形を描くプログラムを作成せよ」と与えられたとする。児童は与えられた問題をいくつかの動きに「分析」する。そして、「解決方法の立案」を行うわけだが、その際には「問題解決のための資源」(プログラムの要素)をどのような順番で、どのように組み合わせたら良いか「仮説」を設定する。そして、実際にプログラムを「試作」し、意図した動きかどうかを「評価」する。評価した結果、意図した通りであれば、終了(「提案」)するが、そうでない場合には「仮説」を再設定し、「試作」「評価」を繰り返す。プログラミングの世界では、デバッグであるが、一般的にはPDCA(Plan Do Check Act)サイクルと呼ばれる活動となる。
2-4.プログラミング教育の手引き
文部科学省より小学校プログラミング教育の手引き(第二版)が出されている[4]。この中で上記に述べた背景、授業方法の種類、具体的な授業の紹介が行われている。実際の現場ではこの手引きに従って授業が進むことになり、混乱は少ないのではないかと考えられる。
3.現状の課題
2020年度から始まる小学校のプログラミング教育の必修化において、下記のような課題があると考えられる。
- 環境整備
- 教育課程への位置付け
- 教えられる教師不足
第1は環境であり、ハードウエアとソフトウエアの整備が必要となる。ハードウエアとして、まずPCが必要であるが、現在、ほぼすべての学校にPC教室はあるので、PCのアプリケーションを利用してプログラミング教育を行う場合には、問題は少ない。一方で、機器を制御するような場面で活用するには、多目的教室やタブレット端末があるとよい。現在(2020年2月14日)、文部科学省ではGIGAスクール構想[5]を進めており、ハードウエアの整備は今後進んでいくと思われる。
ソフトウエアとしては、ビジュアルプログラミング言語が必要となる。ビジュアルプログラミング言語としては、Scratch[6]が有名であるが、いずれの言語もブロックを並べてプログラムを作るようになっており、一般的なプログラミング言語のように学習者が言語を入力するようなことはない。Scratchの画面を図2に示す。真ん中のエリアに左からブロックをドラックして並べることでプログラミングを実現する。開始ボタンを押すと、右側の猫を動かすことができる。
第2は教育課程である。小学校のプログラミング教育は現在の教育課程の中に組み入れることとしており、プログラミング教育のための時間を増やすことはしていない。そのため、既存の授業の中に取り入れることが求められている。教科書では、小学校5年生の算数でScratchを使って正多角形を書く活動が紹介されている。また、小学校6年生の理科でも制御の場面で紹介されている。しかし、小学校では、教科書に載っているものをそのままやるだけでなく、小学校として体系的に順序だててプログラミング的思考をどのように育成していくのかを考えなくてはならない。この設計が現場の課題となる。
第3はどのように教えるかである。現場の教師にとってはこれまで経験のないプログラミングを急に教えることになり、戸惑いがあると思われる。しかし、ビジュアルプログラミングのソフトウエアは非常によくできており、実際に触れてみるとそれほど難しいことはない。さらに、順序処理だけにフォーカスし、授業の目標設定を限定的に設定すれば、小学校2年生だけのグループ学習でも問題解決が行える。しかしながら、最初の利用の仕方を指導する場面で、教師が1人で一斉授業形式で行うのは困難が予想される。
4.授業実践の紹介
上記のような課題を解決するための方法として、本学の学生が小学校を訪れてプログラミングを指導する出前授業について紹介する。本学国際政策学部には英語・国語・公民の教職課程があり、人間福祉学部には小学校教員養成課程がある。これらの学生で主に2年生が小学校に行って、ICTに関する出前授業をさせていただいている。学生にとって、教育実習に行く前に、現場で児童たちを前に授業をさせていただけることは大変貴重な機会である。学生達は、最初のプログラミング指導を大勢(5名から20名)で行う。そのため指導は、グループ別や個別となるので、児童が聞きたいときに学生に聞くことができ、効率的にスキルを身につけることができる。
本年度は初めて小学校2年生にScratch Jr.[7]を用いたプログラミングの授業を行うことができた。授業は国語の授業で物語を作る単元があり、物語をプログラムで表現することを行なった。物語には構成や順番があることをプログラムで実現している。プログラムを作成するときに、順序処理、選択処理、反復処理の3要素があるが、このうち順序処理だけにフォーカスすることで、2年生でもプログラミングを行うことができた。
今回の目的は、あらかじめ紙で物語を作成しておき、その物語に近づけることを目的とした。児童は2人1組で目的に近づけるようにプログラムを試行錯誤しながら作成した。
図 3 小学校で行った出前プログラミング授業の様子
5.おわりに
2020年度からのプログラミング教育の必修化に向けて、3つの課題があることを示した。
第1は環境の問題であるが、これは教育委員会や自治体の課題である。一方で、私立の学校では一人一台のPCやタブレット端末を家庭で購入して持たせているところがある。公立においても、教科書を無償で配布するのと同様な考え方で、タブレット端末を一人一台提供するという考えもあるかもしれない。
第2は学校が教育課程の中にどのように組み入れて行くかを設計しなければならないことを示した。これができていないと、単発的にプログラミング活動を行うだけで、体系としてプログラミング的思考を育成することができない。この設計は大変重要である。
第3は実際に教える場合の課題について示した。ここでは、本学のような外部資源の活用は大変有効である。一方で、学校の中でも工夫することで解決できる場合もある。例えば、多くの人手を活用して指導を行う場合に、高学年の児童が中学年や低学年の児童を指導することもできる。
最後に、そもそも、プログラミング教育を小学校からやる意味について考えてみたい。今、10代の若者が世界的に活躍している。フィギュアスケート、卓球、水泳などのスポーツを始め囲碁や将棋でも、次々と活躍する若者が誕生している。彼らに共通しているのは、幼い頃から始めていることである。若い時から多くの人にプログラミングに関心を持ってもらい、将来、山梨からGAFA(Google, Amazon, Facebook, Apple)のような企業が誕生することを期待したい。
参考文献
[1] Society 5.0、内閣府、https://www8.cao.go.jp/cstp/society5_0/index.html、2020年2月1日閲覧
[2] Sience, Technology, Enginieering and Mathematics(STEM) Education: A Primer, Hearther B. Gonzalez and Jeffery J. Kuenzi, Congressional Research Service, 2012年8月1日
[3] 小学校学習指導要領解説総則編、文部科学省、2018年6月21日
[4] 小学校プログラミング教育の手引き(第二版)、文部科学省、https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2018/11/06/1403162_02_1.pdf、2018年11月
[5] GIGAスクール構想の実現について、文部科学省、https://www.mext.go.jp/a_menu/other/index_00001.htm, 2020年2月14日閲覧
[6] Scratch-Imagine, Program, Share, MIT, http://scratch.mit.edu/, 2020年2月14日閲覧
[7] Scratch Jr, スクラッチジュニアーホーム, https://www.scratchjr.org/, 2020年2月14日閲覧