みなさんは、「プログラミング」と聞くとどんなイメージを思い浮かべますか?
「難しそう……」
「英語ばかりでわかりにくそう……」
というようなイメージを持っている方が多いかと思います。
今回は、プログラミングに苦手意識を持っている方向けに、今、小学校のプログラミング教育必修化で注目を集めている「ビジュアルプログラミング(ブロックプログラミング)」について紹介します。
ビジュアルプログラミングとは?
これまで、一般的に「プログラミング」というと文字や記号を使ってプログラムを作り上げることを指していました。
それに対して、図形(ブロック)などを使って、マウスで図形を動かすことにより見た目にわかりやすくプログラミングをできるものが登場しました。
それを「ビジュアルプログラミング」と呼びます。
例えば、画面に「こんにちは!」と表示させるプログラムを作りたいと考えたとき、IT業界でよく使われているプログラミング言語「Java」で記述すると以下のようになります。
何種類も記号が使われているうえ、1か所でも間違えると動きません。
実際に画面に表示させる命令をしているのは3行目だけですが、それを書くために長い前書きを書かなければなりません。
それでは、ビジュアルプログラミング言語で有名な「Scratch」はどうでしょうか。
左側の一覧から必要な処理を選んで、ドラッグするだけで作成できます。
実際のプログラム内容はこれだけです。
前書きや記号は一切ありません。
ちなみに「こんにちは!」は最初から準備されていますが、表示する内容は変更することができます。
このように、視覚的にわかりやすくプログラムを作ることができるのが「ビジュアルプログラミング」なのです。
ビジュアルプログラミングは必要?
わかりやすくプログラムが作れるビジュアルプログラミングですが
「ビジュアルプログラミングで使い物にならない」
「ビジュアルプログラミングではプログラミングは覚えられない」
という意見があります。 プログラミングの経験者、特に現役プログラマの人にこのような意見を持つ人が多いです。
プログラミングを本職にしているプログラマが言っているということは、信ぴょう性があるのでしょうか?
あくまでもプログラマの観点からすると、少しだけ正解と言えるかもしれません。
そこには、以下に説明するビジュアルプログラミングの「弱点」が関係しています。
複雑な処理が苦手
プログラムというのは、「コンピュータを動かすための命令」です。
コンピュータが一番理解できる命令は、すべてが「0」と「1」であらわされたプログラムです。もちろん人間には読めないので、それを人間がわかるように作られているのがプログラミング言語です。最終的にコンピュータが必要な部分を「0」「1」に置き換えて処理しています。
人間にわかりやすくなればなるほど、1つの命令に使う「(コンピュータにとって)余計な情報」が増えていきます。
ビジュアルプログラミングは入門用ということで「わかりやすさ」を第一としています。
他のプログラミング言語に比べると、複雑な処理をすることをあまり想定していないのです。
実際に複雑な処理をしようとしたら、かなりの手間がかかるでしょう。
作るものが限られる
ビジュアルプログラミングでYouTubeやTikTokといったアプリケーションを作るのはかなり難しいです。先ほど書いたように、複雑な処理が苦手だからです。
また、PS4のような超美麗な3Dグラフィックのゲームを作ることも、そもそも3Dグラフィックを動かす命令が存在していない場合は不可能と言っていいでしょう。
ビジュアルプログラミングは必要!
プログラマがビジュアルプログラミングを「使い物にならない」と評価しているのは、主に「できることに制限がある」ことが理由です。
他に「複雑なプログラムを作成したとき、修正しづらい」という理由もあります。
でも、本当に「使い物にならない」のでしょうか。
最初から初心者には難しいプログラミング言語を学習して、挫折しなかった人だけがプログラミングを覚えれば良いのでしょうか。
結論から言うと、そうではありません。
一昔前ならともかく、現代にはビジュアルプログラミングが必要です。
その理由を次に挙げたいと思います。
プログラミングはIT業界だけのものではなくなる
プログラミングは今後「IT業界の人だけが理解する専門知識」ではなくなります。
もちろん、複雑な処理をするようなプログラミングは、従来通りプログラマが専門として行いますが、基本的な考え方は「基礎知識」として身に着けるものになっていくのです。
「プログラミング教育」が必修化されたわけ
冒頭にも書きましたが、2020年度から小学校でのプログラミング教育が必修化されます。
必修化の詳細は別記事にあるので省きますが、文部科学省が考える小学校でのプログラミング教育の目的は
「将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての『プログラミング的思考』」などを育むこと」
なのです。
つまり、IT業界と無関係の仕事に就いたとしても、もっと言うと日常生活を送る上でも、プログラミング的思考が求められるようになるということです。
背景には「AI」
このように、プログラミング的思考を必要とする背景には「AI(人工知能)」の存在があります。
こちらも詳細は別記事にありますが、今後、多くの仕事でAIを活用することになっていきます。
しかし、従来の家電のように、まったく知識が無くても使えるものにはならないでしょう。
例えば「車の自動運転」が普及したとしても、運転免許が無くても車に乗れるようにはなりません。
自動運転プログラムに何か問題が起こった場合、対処するための知識や手動での運転能力が必要となるからです。
AIを上手く活用するためには、プログラミング的思考が必要なのです。
ビジュアルプログラミングは「はじめの一歩」
プログラミング的思考を育てるために行うプログラミング教育ですが、授業の中でプログラムを書くとは限りません。
しかし、コンピュータの動きを理解する上で、ビジュアルプログラミングに挑戦することは「はじめの一歩」を踏み出すには大変良い方法です。
プログラマにはもっと複雑な処理ができるプログラミング言語が必要かもしれませんが、プログラミングを知るために必要な処理はそれほど多くありません。
料理に例えると、中華料理のプロには中華鍋が必要ですが、一般人が家庭料理を初めて作る時には、テフロン加工のフライパンの方が適切、ということです。
おわりに
高校で数学に挫折し、理系とは無縁だった筆者がプログラミングに興味を持ったきっかけは「RPGツクール」というゲーム作成ツールでした。
数は限られていましたが、ゲームに必要なキャラクターや背景などを組み合わせ、キャラクターを自動で動かすこともできました。命令を間違えると同じところをぐるぐる回って止まらないこともあり、正しく動かすためにどうすればいいのか頭を悩ませたものです。
そして「もっとちゃんとプログラムを作ってみたい」と思ったのです。
今思えば、広い意味で「ビジュアルプログラミング」の先駆けだったと言えると思います。
「プログラミング教育必修化」により、子どもにプログラミングを覚えさせなければ!と焦っている方もいらっしゃると思いますが、複雑なものをいきなり覚えさせる必要はありません。
コンピュータがどうやって動くのか、どのように命令すればわかってくれるのかを覚えるには、まずはビジュアルプログラミングが最適だと思います。
お子さんの興味によっては、もっと複雑な処理ができるプログラミング言語を勉強したい!と思うかもしれません。
みらいごとラボのEクラスではJavaScriptという言語を使った本格的なコードベースのプログラミングも学べます。先ずは基礎的なことやタイピングを習得したのち、Eクラスで本格的なプログラミングを学ばせてあげてください。
また、もしお子さんのプログラミングを見て興味を持たれたなら、是非ご自身でもやってみてください。
きっと「作る楽しさ」を味わっていただけると思います。