『小学校でプログラミング教育必修化』は小学校の大学化につながるか

SPONSORED LINK

5月19日、政府の成長戦略で小学生、中学生、高校生のプログラム必修が義務付けられました。

IoT(Internet of Things)機器から収集したビッグデータがAIによって分析され、その結果をロボットなどが活用する次の時代を「第4次産業革命」と位置づけ、新時代を生き抜く若者を育成するため、小中高校でプログラミング教育を必修化する(小学校は2020年度から、中学校は21年度から、高校は22年度から)。

引用元:「小学校でプログラミング教育必修化」「3年以内にドローン配送」 新成長戦略素案 – ITmedia ニュース

2020年というと東京オリンピック開催の年で、後4年後です。それまでに小学生への授業で行うプログラムをどういう位置づけで整備するのでしょうか。
必修なので中学、高校も順次開始されます。

そもそも日本はIT分野でかなり遅れを取っているため、政府も焦ってこういう計画になったと思いますが、小学生でプログラムはどういう教育でやるのでしょうか。
まず、教師からしてプログラムを教えられる人間などほとんどいないでしょう。
現場で使っている言語やプラットフォームも千差万別なので、卒業して社会人になる頃には習った言語やプラットフォームが古びて使い物にならず全く別の言語やプラットフォームの知識を求められる可能性はITでは非常に高いです。

大学初歩で受講するレベルのC言語プログラム例

筆者はIT業界でSEとして働いていますが日々ITの知識の足りなさを痛感していて、とにかく知識を付けたくて通信大学に入りました。
今通信大学でプログラム基礎のC言語を講義で受講していて、下のようなプログラムを授業で組んでいます。
これが通信大学初歩で受講するレベルのプログラムの一例です。
仕様:

  • whileを用いて3つの整数をキーボードから入力し合計を計算して表示するプログラムを作れ。
  • 入力値が0から100までの数字でない時はこの入力を省き、再度入力させよ。
  • 範囲外の数値の合計処理を省く処理には continue文を使え。

ソースコード例:

実行結果例:

自動入力値[101 0 300 25 100 55 15] 整数:101
入力値が101のため再度入力します
整数:0
1回目の合計は0
整数:300
入力値が300のため再度入力します
整数:25
2回目の合計は25
整数:100
3回目の合計は125
3回の合計値は125

自動入力値[10 20 300 30 40 50] 整数:10
1回目の合計は10
整数:20
2回目の合計は30
整数:300
入力値が300のため再度入力します
整数:30
3回目の合計は60
3回の合計値は60

筆者は元々ソフトウェア開発会社に入社し、C言語をしていましたが途中で挫折してプログラマとしては目が出ませんでした。
いつの間にか仕事はサーバやネットワークに流れて業務経験が積み重なりインフラ技術者になっていました。
ただそれでもバッチファイルを組んだりシェルを修正したりということは業務では行うため、プログラムとは全く無縁というわけではありません。

上のプログラムにしても特に難しい部類ではありません。
恐らくプログラムを学習している小学生なら理解出来る内容だと思います。
C言語は書き方に癖が強いというか、面倒な言語だなという印象ではありますが。

小学校で必修の授業でどのようにプログラム実行環境を整備出来るか

通信大学では、受講する上でC言語の環境を自分で用意する必要はありません。
大学のサーバ内に擬似的な実習環境を恐らく仮想環境で作っていて、学生はインターネットで授業のコンテンツにつなげば、コンテンツ内で言語を書いてコンパイルして結果を見るところまで出来ます。
小学校でプログラム実習をする場合も、同じような環境を作れば視聴コンテンツ内でプログラム実習出来るということです。

しかし、大学だからここまで導入出来るのであって、必修の授業になるとかなり事情が変わってくると思われます。
机上でやるのか、実習させる環境を用意するのか。
実習環境のサーバはどうするのか。
コンテンツはどう用意するのか。
どの言語のどういうプラットフォーム使うのか。
どういう水準までプログラムさせれば義務化としてOKに設定するのか。
必修とかだと公立や県立などの学校からも受講出来ないといけない。そういう費用はどこが出すのか。

机上だけでプログラム学習というのはかなり難しいです。
プログラムの感動は自分が作ったコードが動いているのを見ることだし、デバッグにしても実際にコンパイルしてどういうエラーが出るかを見ないといけません。
全くの机上だけでソースコードを書いたとしてもプログラムを授業で取り入れていますとは言い難いです。

ガイドラインを設定している省庁の担当者はプログラム経験者は少数だと思います。
そういう人からすると、例えば理数系など普通の授業と同じように考えているのかもしれません。
が、プログラムでは環境を自分で壊して作ってが基本です。
筆者が企業でサーバ構築をやり始めたときに言われたのが「とにかく壊せ」でした。
ITというのはとにかく触って壊して、何がいけなかったのかを理解して、どうやれば上手くいくかをとにかく作って壊してから理解する。
肌感覚で会得する。
感覚的な人間である筆者がIT業界でやっていけるのは、とにかく壊して作ってを繰り返して肌感覚を会得しているためだと思っています。

自分がなぜプログラムが出来なかったかは思考的な傾向がプログラマーのように考えることが出来ない部分があるということもありますし、仕事やこれまでの経験値的な部分もかなりあると思います。
経験的な部分は、例えば「順次・選択・反復」などアルゴリズムの考え方の問題で、プログラムではこの部分の考え方はかなり重要ですが、普通の学生生活や新入社員教育ではそういう訓練を受けることがまずないため、そういう訓練を受けていない人が、プログラムを書くのはかなり難しい。
言い方を変えると「プログラムを書けない」のでなく「アルゴリズムが理解出来ていないので作れない」のです。

会社だと、それでも自分が今後生き残れるかどうかなので必死にもなれますが、小学校で30-40人いるクラスで、普通の算数や理科などの内容でも難しいレベルの子供が混ざる中、果たしてこういうプログラムの世界で授業でほとんどの生徒が付いていけるものなのだろうかという疑問があります。
文科省はどういうガイドラインでやるつもりなのでしょうか。
欧州とかだとこういう先端的な児童教育が先行しているイメージもありますが・・・。

小学校からプログラム教育が成功すれば、正にクールジャパン

国内のSIerや開発会社にとってはある意味ビッグチャンスと言えます。
「授業実習環境」のシステムを作って、省庁に売り込んで受注が取れれば構築やその後の運用も含めて相当な利益が見込めます。
授業コンテンツをネットを介してやるのであれば、どこかのSIerのサーバを利用することになるので、大規模な受注が見込めるでしょう。
しかし全国的に小中高からの接続を同じ会社でさばけるとも思えません。
本当にどうやるつもりなんでしょうね。

上では言語を中心に書いていましたが、ITで関係があるスキルはプログラムだけではありません。
サーバ、ネットワーク、データベースもITと関わる以上避けられません。
サーバは現在ではLinuxコマンドが基本です。
Linuxをやっておけば、企業で使っているAIXやSolarisといったOSにも大抵通じます。

企業では商用向けディストリビューションLinuxで2000年くらいから既にメールサーバ、ドメインサーバ、DBサーバなど基幹システムで稼動していて、この運用をするのにLinuxの基礎やコマンド理解が不可欠です。
筆者がLinuxを勉強したのは、会社の業務で必須だったのですが、社内にある手順書やマニュアルでは理解出来なかったため、メルマガのLinux講義を受講して自宅学習していました。
自習していたので会社でも何とか付いて行けていました。

ネットワークは宅内光回線なども既に家庭に入り込んでいるので、ネットワーク学習はぜひ小学生からやるべきだと思います。
ネットワークでは、物理的な結線も絡みますが「繋がった・繋がらなかった」という目に見える部分がはっきり出るので、プログラム以上に一番ゲーム感覚で出来る分野と思います。
ネットワークプロトコルの基礎と10台以下の環境でIPアドレスを設定してインターネットに接続とかは授業でもぜひやっておくべきだと思います。

データベース(DB)は開発でもコアスキルになるため、ITでも特に重要なスキルですが、ER図、データモデル、正規化などの高度な概念の理解が必要です。
また、データベース自体の扱いも難しくSQLも表結合が入ると難しくなってくるため、高校生の選択科目から取り入れるのが無難かもしれません。
DBを経験すればIT技術者としての単価はかなり上がります。
将来的にITを志すならDBは非常に重要なスキルです。

いずれにせよ、興味が尽きないニュースです。
小学生から必修でデータベースの構築をやるのが当たり前の世の中になれば相当面白いと思います。
そうなれば正にクールジャパンですね。

The following two tabs change content below.
SPONSORED LINK

この記事をシェアする