そろそろ論じられるべきプログラミング教育の種類と内容②

前回の続きです。

robot

前回までは、プログラミング教育を以下のように目的別にわけてみたところでした。

  1. 「ロボット」プログラミング → ロボットを動かす目的
  2. 「ゲーム」プログラミング → ゲームを作る目的※
  3. 「WEB」プログラミング → WEBサイトを作る目的
  4. 「アプリ」プログラミング → スマホのアプリを作る目的(スマホのゲームアプリ含む)

そして1.のロボットプログラミングは、「決して良い教材ではない」(プログラミング教育では)と断じたところでした。

※個人の感想です。

続いて「ゲーム」プログラミングに関してですが、

これぞプログラミング教育の花形!

と言いたいぐらい、プログラミング教育にベストと考えております。

理由として、第一に「子どもにイメージしやすいという事です。

これはロボットプログラミングと同じように、非常に重要な要素です。

第二に、「表現力が高い(自由度が高い)」ということです。

「ロボット」プログラミングの場合は、基本的に動かせるのはモーターのみです。

そのモーターも基本的に車のタイヤ用モーターか、関節の役割をするモーターの2タイプです。

「爆発させたり」「ワープさせたり」「強力なレーザーを撃ったり」なんてことは出来ません。

それに比べるとゲーム作りは、想像し得ることのほとんどが表現できます。

また、ただ作ることだけが目的ではなく、自分の作ったゲームを誰かに遊んでもらう(楽しんでもらう)ことも目的に出来ます。

これは非常に重要で、自分の作ったプログラム(ゲーム)の先に、それを遊ぶ誰かがいる事を想像出来るわけです。

このような体験は他では中々出来ることではないですが、プログラミングならそれが可能です。ぜひ子どものうちから体験してほしいことと思っております。

尚、ロボットの場合は、完全に自己完結の世界なので、この点もロボットをオススメしていない理由です。

また、ゲームの内容によってもプログラミングの内容はまったく異なります「とりあえず動けばOK」の世界ではなく、本格的になると、実行速度(快適に動くか)なども気にしてプログラミングする必要があります。

そのため、突き詰めていくとプログラミングの非常に深い部分まで学ぶことが出来ます。

以上の事からゲームプログラミングを、一番オススメしております。

続いては「WEB」プログラミングです。

これは、ロボットやゲームに比べると、少し本格的なプログラミング教育の内容になる場合が多く、ほとんどの場合「テキストベース」のプログラミングになります。

(逆に、ロボットやゲームの場合は「ビジュアルベース」が多いです)

「でも、ホームページ作りとか誰でも出来るよね?昔、自分で作ったよ?」

と思うのは早計です。

ココで言うWEBプログラミングとは、HTML(エイチティーエムエル)と、CSS(シーエスエス)というWEBサイトを形作る基本的な要素以外に、プログラミング言語(JavaScript:ジャバスクリプトなど)を使ったサイトを、1から作ることを目的としています。

(逆に、HTMLと、CSSというのはプログラミング言語ではありません)

よくある「カンタン!ホームページ作成」みたいなもので作れるのは、HTML&CSSの部分だけです。

ただ、WEBの世界というのは非常に進化が早く、どんどん複雑化しています。

例えばTwitterのようなサイトを作るのにも、色んな選択肢があり、すべてを網羅する事は非常に困難です。

また、単純にサイトを作るだけならともかく、「何かしらのサービス」のサイトにするためには、プログラミング以外にもデータベースやセキュリティ、サーバやネットワークの知識も必要になります。

そのため、これらすべて教えられる教室は、まずないと思います。(専門学校でもすべて学べる所は少ないかも)

キノコードでもそうですが、他の教室様でも何かしらのフレームワーク(効率よく作るための枠組み)の使い方の範囲までと思います。

そのフレームワークによって、使用されるプログラミング言語も異なります。

主なものは、JavaScript(ジャバスクリプト)、Ruby(ルビィ)、Python(パイソン)、PHP(ピーエイチピー)でしょうか。

(JavaScriptは、どんなフレームワークでも使うかもですが)

それぞれ似ている部分もあったり、まったく作り方(考え方)が異なるフレームワークもあり、非常に多様です。

今習っても10年後には廃れている可能性も充分あります。

どれが良い?とかいう議論は難しいのですが、将来性でいうとJavaScriptかPythonかな、と思います。特にJavaScriptはまず腐ることはないでしょう。

Pythonは、国内ではあまり流行っていないですが、海外ではスタンダードな言語で、最近では機械学習などで使われることが多く、今後も需要が高まる言語だと思います。

Rubyは、メジャーなプログラミング言語の中で唯一、日本人が開発した言語ということもあり、国内では非常に流行っていますし、そのため日本語の情報が多く、困った時に解決方法が見つけやすいです。世界的に見るとRubyという言語自体はあまり主流ではないですが、この言語を使ったRuby on Railsというフレームワークは、それまでのWEB開発を一新したぐらい革命的なもので、これを元にしたフレームワークも多数作られるほど、今ではスタンダードなフレームワークとなっています。ぜひ一度は学ぶべきものと思います。

(数年前の調査結果データですが、アメリカではRuby on Railsのエンジニアが一番高い年収、つまりは需要が大きかったようです)

PHPに関しては、昔、爆発的に流行った言語で今はあまり話題になる事が少ない言語です。正直10年後はどうなっているか怪しい言語なので、今から積極的に学ぶ意味は少ないかと思います。

かなり大雑把に書いても、コレだけ長くなるように、WEB系のプログラミングはかなり多様で複雑です。

その分、WEB技術に通じたプログラマーは、どこに行っても仕事がありますし、WEB技術は他の分野でも使われる事が多く、今後も需要が増し続けていく分野です。

「将来に役に立つ技術」という意味では、WEBプログラミングが一番オススメなので、カンタンな部分からでもチャレンジしてほしいです。

最期に「アプリ」プログラミングです。

「難しい操作は不要で、カンタンにスマホアプリが作れる!」みたいな宣伝文句をたまに見かけますが、そういうのは、総じて残念な感じなのでココでは無いものとします。

比較的カンタンそうなイメージがありますが、結構難しい分野です。(内容にもよりますが)

ほとんどの場合「テキストベース」になりますので、やはり教えられる教室は少ないです。

教えられても「テキスト通りにやってみよう!」です。

ガッチリと(ネイティブで)作ろうとすると、AndroidとiPhoneそれぞれの作り方を学ぶ必要があり、かなり大変です。(覚える内容も、作る手間も2倍になります)

ただ、最近は一つのプログラムを作れば、Android用やiPhone用に作り変えてくれるプラットフォームなどもあり、プロの現場でも実際でも、そういった開発環境を使っている場合が多いです。

また、WEB技術を応用して作る手法も、随分一般化されてきましたので、WEBプログラミングを学んでおけば応用してスマホアプリも作れる、とも言えます。(アプリによって向き不向きはありますが)

今後もスマホはなくなる事はないと思いますので、この分野も将来性はあるかと思いますが、個人的には、「どうせならWEBを学んだ方が良いんじゃ?」とも思っています。(ネットワーク、データベースなど周辺技術も含めて共通した部分が多いです)

ということで、あまり纏まりがない記事になってしまいましたが、以上が目的別プログラミング教育とさせて頂きます。

「で、結局どれが良いんよ?」

と、いう点ですが、やはり個人的に「ゲーム」プログラミングがベストと考えます。

入門から上級者まで、広くプログラミングを学べますし、なにより楽しく出来るので。

まぁ一番良いたかったのは、「ロボット教育とプログラミング教育は分けて考えるべき」ということです。

うちはプログラミング教育を主としてやっていますので、ロボット教育だけをの

子どもの教育関連ブログはこちら

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です