未経験プログラマーの雑記

元個別指導塾運営者、現プログラマーによるブログです。教育や自身の学びについて発信していきます。

必修化される『プログラミング教育』の解説と問題点

本文:約4500字
およそ10分で読み終わる量です
 
・はじめに
 2020年に入り、いよいよ4月から「プログラミング教育の必修化」が始まります。いろいろな情報が出回っていますが、私自身ニュースなどで見ているだけではよくわからない点が多々あったので、その疑問点を元に調査し、「これはまずいんじゃないか・・・?」と思うこととその理由を列挙し、最後に「親がどうすべきか」についても触れていきます。
 
目次
・自己紹介
・何年生から、どの程度の時間を割くの?
・どんな内容を勉強するの?
・実際にパソコンを使ってプログラミング言語を使ってプログラムを書くの?
・プログラミング教育の問題点
・おわりに
 
 
・自己紹介
 「どんな人間が書いたのか」が分からないと、ネットの情報も信用出来ませんよね。私は大学生の時に塾講師として小学生から高校生まで担当しており、社会人になってからも教室スタッフ、責任者として働いていました。残念ながら教員免許は持っていないので、公教育の思想等はわからないのですが、子どもの教育については強い関心を持っています。
 また、現在は転職し、プログラマーとして働いています。そのため、当然ですがプログラミングを勉強する難しさ、楽しさ、「プログラミング的思考とはどういうものか」など、実体験として理解しています。
 上記のような人間が、プログラミング教育についての考えを書いています。
 
・「プログラミング教育必修化」の前提
 「プログラミング」という科目が出来るわけではありません。算数や理科、総合的な学習の時間の指導要領の中に「プログラミング的思考を養う内容」が含まれる、というものです。
 また、プログラミング教育は主に4つの分類をなされており、
 A分類:学習指導要領に例示されている単元等で実施するもの
 B分類:学習指導要領に例示されてはいないが、学習指導要領に示される各教科などの内容を指導する中で実施するもの
 C分類:教育課程内で各教科などとは別に実施するもの
 D分類:クラブ活動など、特定の児童を対象として、教育課程内で実施するもの
 があります。
 
 要は、
 A分類:「この教科のこの単元でプログラミング内容を絡めてね」
 B分類:「単元決めていないけど、この科目と絡めてやってね」
 C分類:「科目すらも決まっていないが、考えて何かやれ」
 D分類:「クラブだから考えて何かやれ」
 
 …すでに突っ込みたい気持ちですが、あとでまとめて突っ込みますね。
 
疑問1.「何年生から、どの程度の時間を割くの?」
答え
 明確に「何年生から開始」という制限は文部科学省の資料などにも見当たりませんでした。しかし、遅くても5年生からのようです。これは「プログラミング教育ポータル」のA分類の事例を見て、5年生と6年生のものしか存在しなかったため「5年生からは確実にやる」と判断しました。
 また、プログラミング教育に用いるパソコンのソフトをB分類で2年生で体験するような事例がポータルに掲載されていたので、おそらく2年生からパソコンやタブレットを使う機会は与えられそうです。
 また、どの程度の時間割くかですが、具体的な事例がポータルにありました。5年生の図形の学習8時間のうち、4時間目と5時間目をプログラミング的な考え方を用いたり、実際にパソコンを使って学習する時間に充てるそうです。
 
疑問2.「どんな内容を勉強するの?」
答え
 分類について解説した部分にもあるように、学習指導要領にはあくまで「指導例」が掲載されているだけなので、実際にどのような指導をお子様が受けることになるかは、小学校の先生の判断による、ということになりそうです。
 具体的な内容を知りたい方はポータルに実際にアクセスし、A分類の内容を見てみると、何となくイメージはわくのではないかと思います。
 また、「あくまでプログラミング的思考力」を養うためのものであるため、「プログラミング言語の知識を蓄え、技術力を高める」というような、「エンジニア育成」的な内容ではなく、これまでも学習してきた算数や理科などの既存単元をもとに、プログラミングと融合して学習することで、各教科などでの学びをより確実なものとする、ということらしいです。
 
疑問3.「実際にパソコンを使ってプログラミング言語を使ってプログラムを書くの?」
答え
 おそらく書きません。文部科学省が発表している「小学校プログラミング教育の手引」には、「プログラミング教育を通じて、児童がおのずとプログラミング言語を覚えたり、プログラミングの技術を習得したりすることは考えられるが、それ自体をねらいとはしない」とあります。これを見ると、「プログラミング言語を触ることはあるんだろうな」という印象を(少なくとも私は)受けますが、こちらもポータルを見てみると、2020年1月現在掲載されているものはすべて「ビジュアル型プログラム」と呼ばれるものでした。
 ビジュアル型プログラムとは何かというと、
「前に進む」
「右に90度曲がる」
「左に90度曲がる」
「繰り返す」
「何秒間」
「停止する」
のように、あらかじめいくつかの「動作の選択肢」が明記されたブロックがあり、それを組み合わせることでプログラムを作り、例えば車の画像が正しくスタートからゴールにたどり着くようにする、というようなものです。
 
実際のプログラミング言語とは、例えばpythonという言語であれば
 
import datetime
current_date = datetime.datetime.now()
current_year = current_date.year
if current_year % 4 == 0 and current_year >= 1896:
    print(“今年はオリンピック開催年です”)
else:
    for x in range(1,4):
        if (current_year + x) %4 == 0:
            print(str(x) + “年後にオリンピックが開催されます”)
print(“め、明治時代以前の方ですか…?”)
 
 
ふと思いついたプログラムですが、こんな感じです。
現在が西暦何年かを取得し、オリンピックがある年なのか、そうでないのかを判定し、開催年であればそれを表示。そうでなければ、何年後に開催されるのかを返すプログラムになっています。(1896年からオリンピックが始まったらしいです。さっき知りました)
 
ちなみにpythonという言語は比較的読みやすい文法なので、言語によってはどう読み進めて良いのかを知らないと全く意味が分からないものもあります。(個人的に、javaが嫌いです)
 見るからに全く別物ですが、プログラミングを勉強した身としては、ビジュアル型プログラムを練習することも「ある程度役に立つ」とは思っていますし、学ぶ楽しさは感じられると思います。また、課題を分析し、どうすればその課題を解決できるのか、何が間違っていたのかなど、論理的に考える練習にもなり、「学習する」ことの正しい流れを体験させてくれるものであると思います。
 
・プログラミング教育の問題点
 
1.学校の先生にゆだねる部分が大きすぎる!特に分類Cがまずい!
 前提内容として解説した内容ですが、分類Aはすでにポータルにも事例が掲載されており、学習指導要領にも「どの科目のどの単元で実施するか」の例が掲載されているようなのでまだ良いです。問題はB、Cで、特にCに至っては意味がわかりません。私が先生の立場だったら、文部科学省の発表した手引きを見た瞬間キレます。
 手引きにC分類の例を加えた、とか発表していましたが、本当にただの「例」なんです。「たとえば、こんな感じで」みたいなものすごく抽象的な内容で、「どんなソフトを使うか?」など、具体的な実施方法がまるでありません。以下、実際の記載です。
『C-① プログラミングの楽しさや面白さ、達成感などを味わえる題材などでプログラミングを体験する取組
 例えば、学校の裁量で時間を確保し、簡単なプログラムを作成することが考えられます。
 具体的には、ビジュアル型プログラミング言語を用いて、画面上を自動的に動くキャラクターⅠにつかまらないよう、自分で別のキャラクターⅡを動かすことが出来るプログラムを制作するという題材を設定し、実際にキャラクターⅠが自動的に画面上を動くプログラム、キャラクターⅡを自分で操作できるようにするプログラム、キャラクターⅠとⅡが触れたときに動作が停止するプログラムなどを作成することが考えられます。』
(文部科学省HP、『小学校プログラミング教育の手引(第二版)』より引用)
 
 いや、それを実現出来るビジュアル言語にはどんなものがあるかとか、それくらい書いてくれ…。
 というか、工夫を促すなら使用できるツールをまず提示して、それらを使うとどんなことが出来るのかっていう順で紹介しないと、そもそも先生も工夫する余地がないのでは…。
 
 実際に私が子どもに勉強を教えていたからこそわかりますが、教えるのってめちゃくちゃ準備がいるんです。「自分が出来るから教えられる」というものでもないです。まして、「自分がやったことも無いこと」を「教えられる状態にする」のはものすごいエネルギーが必要です。しかも極めつけは「何をやるのかは教員自身がプログラミングを体験して、自分で工夫して考えろ」という…。
 そしてポータルにはC分類の事例、めっっっちゃくちゃ簡単な内容しか掲載されておらず、「これ5年生以上がやっても盛り上がらないだろうな…」という印象でした。
 でも、プログラミングの経験が無い先生が自分で独自に工夫してまともな授業案を作れるかと言うとかなり難しいと思うので、あんまり面白くない内容とわかりながらも、仕方なくそのまま授業に使う、という流れになりそうな気がしています。
 
 面白くないとわかりながら教えるの、「教えるのが好きな先生」には本当に苦痛なんですよ…。その苦痛に耐えながら無難にやり過ごすか、キャパオーバーしながら不慣れな内容に苦しみながら工夫して面白く教えるか…。どちらにしても、熱心な良い先生こそ病みそうです。
 
2.圧倒的に時間数が少ない!
 これは先生側からすればありがたいと思いますが、論理的思考力向上やプログラミングへの興味を引くことが目的なのだとしても、ポータルを見るに体験時間が短すぎます。
 私が小学生の時は英語の授業が不定期で年に1、2回とかあったような覚えがあるのですが、たぶんその程度のものになります。むしろ学校の先生も、英語は勉強したことがあるからイメージがわくものの、プログラミングはほぼ知識ゼロのはずなので、より内容は薄くなるのではないかと思います。
 これは予想ですが、プログラミング教育必修化から5年間くらいは、授業を受けた生徒に感想を聞いても大半が「パソコンで遊んで楽しかった」くらいの内容なんじゃないかと思います。
 (私の英語の授業の記憶は「なんか英語で意味分からんままに歌を歌った」だけです)
 
・親はどうすべきか
 ここまでプログラミング教育に関して、基本的に酷評してきましたが、親御さんが気になるのは「自分の子どもはついていけるだろうか」ということだと思います。
 これは断言出来ますが、特に気にしなくて大丈夫です。学校の授業対策としてプログラミング教室に通わせる必要もありません。
 ただ、プログラミングのスキル自体は私自身とても重要なものだと思いますし、論理的思考力を育み、他の分野の学習においても応用が利くものだと思っていますので、そういう将来的なことを見据えるのであれば、プログラミングを習わせる、ということはとても有意義なことだと思います。
 また、家にパソコンが無い場合も大丈夫です。学校の授業のために買う必要はありません。ただ、将来を考えて(以下略
 
・おわりに
 長くなってしまいましたが、ここまで目を通していただきありがとうございました。少しでも、これを読まれた方の参考になれば幸いです。
 そしてもし、これを読まれた方の中に学校教育関係者の方がいらっしゃり、私の文章に誤りがあれば、ぜひご指摘下さい。公開されている資料とポータルを参考にしましたが、漏れがあるかもしれません。
 最後まで読んでくださりどうもありがとうございました。