プログラミング教育って。。。#6(プログラミング言語)

今回は、プログラミング言語について触れてみたいと思います。

 

コンピュータはプログラムが命令を出すことによって動きます。

プログラムは、コンピュータに命令を出すために、人がプログラミング言語を使って命令を書いていきます。(コーディングって言います。)

このプログラミング言語っていうのが色々とあって、言語によって得意分野があるので、特性に応じて最適なプログラミング言語を選択します。

 

プログラミング言語の種類

現代のプログラミング言語には大きく、従来のテキストベースのテキストプログラミング言語と、テキストは使用せず、わかりやすいグラフィカル化されたパーツなどを組み合わせるビジュアルプログラミング言語に大別されます。

 

テキストプログラミング言語

従来の文字コードをタイピングして作成していくものです。実際の仕事や業務での開発は、もちろんこちらが採用されます。特性に応じてプログラミング言語を選択します。

 

例えば、

PHP:軽いWebシステム向き

perl:文字列操作が得意(一括置換とか検索とか、いわゆる正規表現ってやつ)

Java:わりと大規模なWebシステム

JavaScriptWebブラウザでの便利操作など

・phython:今はやりのAI(人工知能)、ディープラーニング向き

などなど

 

テキストプログラミング言語については、今回はこれ以上の説明は省略します。 

 

ビジュアルプログラミング言語

子供や初心者向けに誕生、発展していってるようです。

テキストプログラミング言語とは対照的に、グラフィカル化されたパーツなどをドラッグ&ドロップで操作することが多いです。

 

代表的なものとしては、

 

Scratch(スクラッチ)

マサチューセッツ工科大学で2006年に最初のバージョンが開発され、子供の教育向け言語として普及

 

Viscuit(ビスケット)

子供向けプログラミング教育用のツールとして2003年にNTTの研究により開発された日本発のビジュアルプログラミング言語

 

などがあります。

 

ちなみに書籍も色々出ているようです。。。

 

 

小学校のプログラミング教育でのプログラミング言語

 

小学校のプログラミング教育では、ビジュアルプログラミング言語が採用されるシーンが多くなりそうな感じです。

 

ということで、例として、「プログラミング教育って。。。#3」で述べた、電車で移動するシーンの例を、もう少しわかりやすくビジュアル(Scratch風?)に表現してみます。

 

念のため、「プログラミング教育って。。。#3」を引用すると、

****

電車に乗って目的駅に向けて移動する時、いちいち途中の停車駅で降りたりしませんよね。更にはその都度、途中駅を出て、また入ったりもしませんよね。

普通は駅に入ったら電車に乗ってそのまま目的駅に着くまでまで電車に乗ったままですよね。そして目的駅に着いたら電車を降りて駅を出ますよね。

**** 

 

では、ビジュアルに表現。。。

 

①正常なパターン

「駅に入って」、「電車に乗って」、目的駅まで、「次駅に移動〜次駅に到着」までを繰り返し、目的駅に着いたら、「電車を降りて」、「駅を出る」

これって普通ですよね。  

f:id:thmat:20200224215816p:plain

 

 

②効率が悪いパターン

「駅に入って」、目的地まで、「電車に乗る〜次駅に移動〜次駅に到着〜電車を降りる」を繰り返し、目的駅に着いたら、「駅を出る」

ないな〜い笑

駅に着くたびに、いちいち、途中の各駅で降りませんよね。

f:id:thmat:20200224215922p:plain

 

 

③更に効率が悪いパターン

目的地まで、「駅に入る〜電車に乗る〜次駅に移動〜次駅に到着〜電車を降りる〜駅を出る」を繰り返す

いやいや。。。

各駅で記念撮影? それとも切符買うのが好きなのかな? 切符代が高くつきそう笑

f:id:thmat:20200224215939p:plain

 

 

④あれっ???

「駅に入って」、「電車に乗って」、目的駅まで、「次駅に移動〜次駅に到着〜電車を降りる」までを繰り返し。。。

あれ、電車を降りて、乗らずに次駅に移動??? 歩けって??? 無理無理笑

f:id:thmat:20200224215948p:plain

 

 

普通に考えると、①の処理が一番効率的ですが、コンピュータって命令には忠実なので②も③も普通に実行できちゃうんです。

④は、実行エラーになっちゃいますね。。。

 

結局のところ、最適な処理をするのはコンピュータではなく、人がコンピュータに最適に処理させるようにプログラミングするってことなんです。

つまりは、「プログラミング的思考力」を発揮させることが重要になってくるんです。

 

 

 

 

にほんブログ村 教育ブログ プログラミング教育へ
にほんブログ村

PVアクセスランキング にほんブログ村