プログラミング教育を行う先生へ
なぜプログラミングを学ぶのか?
これからのSociety5.0社会に向けて
原稿執筆中の現在、新型コロナウイルス(COVID-19)の対策に追われています。各学校でも、休校期間中に学校と家庭をつなぐために、様々な取り組みをされたかと思います。ICT環境が整い、実施に踏み切れた地域や学校では、テレビ会議システムなどによるオンライン授業が展開されました。企業でもテレワークが一気に広がりました。こうしたネット上の世界(サイバー空間)と現実世界(フィジカル空間)を組み合わせた学びや仕事、生活は、今後も展開されていくでしょう。こうしたサイバー空間とフィジカル空間を高度に融合させたシステムにより、経済発展と社会的課題の解決を両立する人間中心の社会が「Society5.0」です。ご存じの方も多いと思いますが、5.0とは、狩猟社会、農耕社会、工業化社会、情報化社会に続く5番目の段階ということです。
先生方が教えられている子どもたちが社会に出て活躍する10年後、20年後は、こうした変化がさらに進むことでしょう。そこでは、COVID-19対応のように、不測で解も見えない課題を解決していく必要があります。今の学習指導要領はこういった問題意識の上に作られています。目の前の子どもたちは、ICTを活用し、不測で解も見えない課題に立ち向かっていけますか。変化に対応し、次の社会を作り出してくれる力を身につけていますか。一人1台端末でのICT活用、プログラミング教育はそのための第一歩です。
ICTは子どもの文房具になる
COVID-19での休校期間中の知人の小学校1年生の娘さんの話です。お母さんが仕事でテレビ会議しているのを見た娘さんが、使ってみたいというので、娘さんの友達のご家庭とつなぎ、テレビ会議で話をしたそうです。娘さんには楽しい一時だったようで、すぐに使い方を覚え、友達の家庭ともつないでもらい通話し出したとのこと。さらに次の「会議予定」を決め、会えない友達とやりとりできるようになったそうです。うまく約束できず「○○ちゃんとはなかなか約束できないんだ」との悩みもあったとのこと(相手は保育園児)。
小学校1年生の子が、「友達と話したい」という願い=課題意識を持ったことで、テレビ会議システムを使いこなすのみならず、自分で予定を調整し、課題を解決していく。そして、相手との関係の調整という、ICTだけで解決できないことにも悩み、取り組もうとしている。先に述べた「ICTを活用し、不測で解も見えない課題に立ち向かっていける」とは、こうした子どもたちではないでしょうか。
大人は、ICT活用というと、とかく難しく感じ、何かトラブル等を心配しがちですが、子どもたち自身が解決したい課題を持てば、そうした壁を一気に越えて行ってくれることでしょう。また、現在のICT機器やシステムはそれが可能なように使いやすくなっています。
人にとってスマホが既に特別なものでないように、ICTもあっという間に子ども達の日常に溶け込み、文房具となることでしょう。大事なのは、その文房具で解決したいと思う問題を、子どもたち自身が解決できる学びではないでしょうか。
子どもが学ぶ三つの言語
プログラミングを学ぶ必要性の一つに、プログラマーの人材不足が挙げられます。しかしプログラマー不足が問題でしたら、プログラマーの待遇を格段に良くすることがまず一番です(理工系離れの中での医療系人気と同じ)。重要課題ですが、義務教育において目指すべきことではありません。
一方、社会のあらゆる場面で膨大な情報が扱われ、私たちもスマホやPCで便利アプリや各種サービスを使っています。これを支えているのが情報システムであり、プログラムによって動いています。プログラムがどのように動き、どのような仕組みになっているのか、また、活用の注意点も知ることは、子どもたちに必要な教養の一つになるでしょう。いわば教養としてのプログラミングです。
別な観点からプログラミングを見てみましょう。今の子どもたちは、三つの言語を学んでいます。一つ目は母国語である日本語です。母国語は、その国の人の思考の根幹となるものです。二つ目は第2言語である英語です。英語という海外の言語を学ぶことで、異なる文化背景を理解し、それを踏まえたコミュニケーションを学ぶ側面が重要です。
この二つの言語に対し、プログラム言語(ブロックなどでの視覚的な言語も含め)は、コンピュータという機械とのコミュニケーションの言語です。コンピュータは的確に指示をすれば、正確かつ、ずっと仕事を続けてくれる便利な機械です。しかし、人間のように曖昧な指示や阿吽の呼吸では動きません。プログラム言語で指示をして、様々なことができる経験や、逆に融通の利かないことを経験すること、すなわちプログラミングを学ぶことは、便利だけど融通の利かないコンピュータとのコミュニケーションを学ぶことでもあります。これからを生きる子どもたちは、この三つの言語を駆使していくことが必要ではないでしょうか。
身の回りのプログラミングの考え方
プログラミング教育の目標で示されているのが「プログラミング的思考」です。この例でよく出されるのが料理です。目玉焼きのような簡単な料理であっても、フライパンを熱して卵を割ることから、仕上がりまで複数の手順と条件判断が必要になることはおわかりになるかと思います。これら処理の手順や判断(アルゴリズム)を人間が理解できる言語(プログラミング言語)でコンピュータへの指示書にしたのがプログラムです。料理同様に、音楽の楽譜も、まさにプログラムの考え方です。他にも例がどんどん出るでしょう。
このような「プログラミング的思考」を身につけた子どもは、目的の課題解決のために、必要な条件を考慮しながら試行錯誤し、最適な手順や判断を考えていくことができるでしょう。プログラミング教育では、子どもたちがプログラミングを通して、これらの考え方を身に付けることを目標にしています。そしてこの考えを見つけた子どもが、ICTを活用し、不測で解も見えない課題に立ち向かっていき、新しい社会を創り上げてくれるのではないでしょうか。
参考
文部科学省:小学校学習指導要領(平成29年告示解説)、2017