プログラム教育のプログラミング言語にはProcessingが良いかも

Processing本の献本いただきました

 遊んで学ぶ はじめてのプログラミング Processingの魔法の学校という本を、n_ryota さんから献本いただきました。ありがとうございます!

f:id:karaage:20160330204248j:plain:w640

遊んで学ぶ はじめてのプログラミング (GAME DEVELOPER BOOKS)

遊んで学ぶ はじめてのプログラミング (GAME DEVELOPER BOOKS)

 Processingというプログラム言語の本で、初めてProcessingに触れる初心者を想定して、セットアップから非常に丁寧に解説された素晴らしい本です。イラストやキャラクタによる解説で、ページを開くたびにワクワク感を持たせるサービス精神たっぷりの構成です。表紙から一見子供向けにも見えますが、後半は3Dグラフィックやスマホ用のネイティブアプリの作り方等かなり高度なことも出てきますので、中級者や上級者の復習にもよいのではないかと思います。

 ちょっと森博嗣さんのくだりが出てきたときはニヤリとさせられてしまいました。私も下記記事で触れたりしています。

プログラム教育におけるProcessingの可能性

 最近プログラム教育の話題を聞きます。最近だと、厚切りジェイソンさんがNHKで「WHY!?プログラミング」というプログラミング教育の番組に出演して話題になっていました。

 自分も、子供の頃の経験や、子供が生まれたこともあり、プログラミング教育に関しては考えることがあります。あんまり学校教育には期待していないので、子供が大きくなってもし興味を示したら色々教えてあげれたらと思っています。

 そのときNHKの「WHY!?プログラミング」で使っていたような「Scratch」という言語も、とっかかりとしては面白そうなのですが、物足りなくなってきたときの次の段階としては「Processing」がが良いかなと思っています。

 具体的によいと持っている点は以下4つくらいです。

  • ライブラリ無しで簡単に絵が描ける
  • 多くのプラットフォームで動作する
  • 拡張性が高く、ハードウェアとの組み合わせが楽しめる
  • 実用的なアプリも開発可能

ライブラリ無しでも簡単に絵がかける

 何もインストールしなくても絵がかけるのがよいですね。以前妻にProcessingを教えていたのですが、初心者にも関わらず某キャラクタっぽい絵を描くことに成功していました。 f:id:necogista:20141120174046p:plain:w640

 やはりプログラミング、最初に何を作りたいかといえばゲームで、そのためには絵を描いたり動かしたりしたいんですよね。でも一般的なプログラミング言語の絵を出すためのハードルがいかに高いか。ライブラリのインポートなどのお約束も多くて、本質的でないところでつまづいちゃうのはやっぱり勿体無いですよね。

 これほど簡単に絵がかけるプログラミング言語ってそうはないのじゃないかなと思います。

多くのプラットフォームで動作する

 教育用として、マルチプラットフォームは必須ですよね。WindowsでもMacでもLinuxでも同じプログラムが同じように(基本的には)動作します。小型の教育用PCボードとして話題のRaspberry Pi上でもちゃんと動いてくれますので、お金がない家庭でも余っているPCだったりRaspberry Piを購入することで気軽に始めることができます。Raspberry PiでのProcessingの動かし方は下記記事参照ください。

拡張性が高く、ハードウェアとの組み合わせが楽しめる

 非常に多くのライブラリがあるので、色々可能性が広がります。音声を扱ったり、Kinectと組み合わせることもできるので、下記のようなバーチャルな自作楽器を自作することが比較的簡単にできたりします。

 OpenCVも動いたりするので、画像処理のソフトとかも作ることができてしまいますね。

実用的なアプリも開発可能

 もともと教育用のプログラミング言語ではありますが、ちゃんと実用的なアプリも作れるのがよいところです。実行形式のファイルをエクスポートできるので、自作ソフトを世界中の人に使ってもらったり、フィードバックもらったりということができます。

 私もProcessingを使ったアプリをリリースして、色々な人に使ってもらったりフィードバックもらうことができました。

まとめ

 自分が子供の頃は、プログラム教育なんて言葉もなかった時代に、BASICをポチポチ打ち込んでいた記憶があります。そのころに比べると環境は格段によくなったなと思っています。でも逆にこれだけPCが普及すると、私が子供のころ感じていた、プログラムが動いたときの感動とか全能感は少し薄れてしまうのかなとか思ったりします。どうなのでしょうね。

 プログラム教育に関してはまた時間があれば、いちどまとめてみたい気がします。ここまで書いておいてなんですが、必ずしもProcessingがベストと思っているわけではありません。子供一人一人のレベルや好みに応じて、好きなものを学ぶのが一番重要だと考えています。子供が好きなら「Scratch」でも「BASIC」でも好きなものやらせるのが良いのではないのかなと思います。少なくとも、「Scratch」だとこんなことができないとか、否定的な意見で大人が決めるべきではないかなと思います。限界を感じたら、子供は自分自身で次の方法を考えるだろうし、限界を大人が決めるべきではないと思います。ひょっとしたら子供が、そんな限界を軽々と超えてくるかもしれないですしね。

 極論すれば、プログラムに興味が無ければ別にやらなくてもよいかな、くらいに思っています。あくまでプログラム言語やプログラムって何かを達成するための手段の一つでしかないですからね。子供が、自分が考えもしなかったようなものに興味を示して勝手に学習してくれたら、それが一番嬉しいかもしれません。私が子供のころ、プログラミングがそうだったように、大人が少し眉をしかめたり理解がおいつかないようなものが、未来を切り開くかもしれません。例えば、遺伝子操作とかかなりクールかもですね。

n_ryotaさんの公式サイト・ブログ

関連記事