羊の夜をビールで洗う

シングルファーザーなプログラマーのワンオペ育児&暮らしのブログ。

【子どものプログラミング教育】Scratchからのステップアップに、日本語プログラミング言語の「プロデル」をオススメしたい。

 

 

Scratchもいいけれど...

2020年からの新学習指導要領に盛り込まれるのではと言われている、「子どものプログラミング教育」への関心が、日に日に高まっています。

 

子どもにプログラミング的な考え方を身につけさせるための、入門用ソフトウェアとしては、アメリカのMITメディアラボで開発された、「Scratch」が最近では人気です。

 

f:id:smartstyle:20170915192527j:plain

Scratchでのプログラミングの様子

 

Scratchは、プログラミングの基本的な考え方である、分岐や繰り返しが、分かりやすいグラフィックで表現されていて、小さな子供でも楽しいアニメーションを簡単に作ることができるので、プログラミングの導入として、確かに優れています。

 

しかし、将来ビジネスでも使えるプログラミングのスキルを身に着けさせたい!とまで、意欲の高い方ならば、アニメーションを作るよりも、もう少し凝ったことのできる言語を使わせたいところ。

 

そこでいきなり、「Visual Basic」や「Java」のような、本格的なプログラミング言語に挑戦させるのもいいのですが、そのようなプログラミング言語への橋渡しに、日本語で書けるプログラミング言語を使わせてみるのも、いいかもしれません。

 

プログラムを日本語で書くという試みは、かなり前から行われていましたが、その中でも最近試した「プロデル」という言語と、プログラムを書くためのソフトウェア(開発環境とも言います)が、「良くできているなぁ!」と感心したので、こちらで紹介してみます。

 

「プロデル」のインストール

「プロデル」でプログラミングをするには、まず、手元のパソコンに「プロデル」をインストールする必要があります。

 

日本語プログラミング言語「プロデル」のWEBサイトは、こちらになります。

 

rdr.utopiat.net

 

このWEBサイトのダウンロードページから、「プロデル(インストーラ付き)ダウンロード」をクリックして、プロデルのソフトウェアをダウンロードします。

 

ダウンロードしたファイルをダブルクリックすると、インストーラが起動するので、「次へ」のボタンをどんどん押して、インストールします。

 

f:id:smartstyle:20170915194210j:plain

 

途中で、「Microsoft Visual C++2010 再頒布可能パッケージ」というもののインストールを求められたときは、そちらもインストールします。

 

プロデルで、プログラムを書いてみる

ソフトウエアのインストールが終わると、「プロデルデザイナ」というアプリケーションが立ち上がります。

 

f:id:smartstyle:20170915195019j:plain

 

このアプリケーションの中に、日本語でプログラムを書いて、「実行」すると、書いたプログラムを動かすことができます。

 

こんにちは、世界

それではまず、プログラマが新しいプログラミング言語を学ぶときの定番である、「Hello World」を画面に表示する、というのをやってみます。

 

f:id:smartstyle:20170915195405j:plain

 

画面の左側にあるエディタの中に、

 

「こんにちは世界」を表示する

 

と書いて、上の画像の赤枠で囲った場所にある、緑色の再生ボタンを押します。

 

f:id:smartstyle:20170915195639j:plain

 

はい、表示されました。

 

ググる

これだけでは全然面白くないので、もう少し複雑なこともやらせてみます。

 

例えば、

 

「(何かの言葉)」をググる

 

と書いて実行すると、WEBブラウザが起動してカギカッコの間に入れた言葉を、Googleで検索してくれます。

 

f:id:smartstyle:20170915200608j:plain

 

エディタに文字を入力する時、「プロデル」で使える命令がある場合は、上の画像のように候補を表示してくれたりもして便利です(「コード補完」と呼ばれる機能です)。

 

ボタンを押して、何かをさせる

「プロデル」では、文字を表示したり、ブラウザを起動するだけでなく、自分でアプリの画面(GUI)を作ることもできます。

 

例えば、画面にボタンが一つだけあるアプリを書きたい場合は、こんな感じで書きます。

 

マイアプリというウィンドウを作る
マイアプリへOKボタンというボタンを作る
OKボタンの位置を{30,30}に変える
OKボタンの大きさを{100,100}に変える
OKボタンの内容を「押してね!」に変える
マイアプリを表示する
待機する

 

いきなり文の量が増えて、プログラミングっぽくなりましたが、まだ読むだけでも雰囲気は伝わるはず。(最後の「待機する」はおまじないだと思ってください。)

 

実行すると、自分で作り方を書いたとおりに、ちゃんと画面が出てきます。

 

f:id:smartstyle:20170915202943j:plain

 

ただし、このままではボタンを押しても、何も起きません。

 

ボタンを押したら、さっき書いた「ググる」動作を実行してくれるように、プログラムを足してみます。

 

f:id:smartstyle:20170915203331j:plain

 

赤い枠で囲った部分が、付け足した部分になります。これで、ボタンを押したらブラウザが起動して、カギカッコで囲った中の文字を検索してくれる、アプリができあがりました。

 

「プロデル」で使える命令には、ワードやエクセルを起動したり、エクセルの中身を操作したりするものもあるので、ちょっと頑張ればランチャーや便利マクロのようなものも書けそうですよね!

 

ちなみに、GUIについては下の画像のような、もっと本格的なツールでデザインすることもできます(まー、これが使えるくらいなら、Microsoftの「Visual Studio」も使えてしまいそうですが...)

 

f:id:smartstyle:20170915213810j:plain

 

もう少し、論理的なプログラムを書いてみる

ここからさらに、画面を作って遊ぶことに凝ってもいいのですが、「プログラミング的な考え方を身につけること」の目的に立ち返って、記事の最後に、分岐や繰り返しを使った論理的なプログラムを、「プロデル」で書いた例を載せてみます。

 

FizzBuzz問題

一つ目は、「FizzBuzz問題」のプログラムを書いてみます。

 

「FizzBuzz」とは、英語圏の人がドライブや飲み会で遊ぶらしい(?)言葉遊びです。ルールは以下の通り。

 

  • 最初のプレイヤーは「1」と言う。
  • 次のプレイヤーは、次の数字を言う。
  • ただし、数字が3で割り切れるときには「Fizz」と言う。
  • さらに、数字が5で割り切れるときには「Buzz」と言う。
  • 数字が、3と5の両方で割り切れるときには、「FizzBuzz」と言う。

 

シンプルなルールのゲームなのですが、このルールの通りに動作するプログラムを作る「FizzBuzz問題」は、コンピューター業界において、志願者がプログラミングの素養があるかどうかを見分ける問題の一つとして、広く知られています。

 

さて、この「Fizz Buzz問題」をプロデルで書いた結果は、こんな感じ。

 

20回、ターンにカウントしながら 繰り返す

  余り3をターン%3とする
  余り5をターン%5とする
  余り15をターン%15とする

  もし、余り15=0なら、
    「FizzBuzz」を表示する。
  他でもし、余り3=0なら、
    「Fizz」を表示する。
  他でもし、余り5=0なら、
    「Buzz」を表示する。
  そうでなければ、
    ターンを表示する。
  もし終わり

繰り返し終わり

 

論理が入り混じった、少し複雑なプログラムも、いつも使っている日本語になるだけで、親しみやすくなると思いませんか?

 

バブルソート

二つ目の例は、並べ替えのアルゴリズム「バブルソート」を、プロデルで書いてみます。

 

アルゴリズムとは、「ある問題を解くための手順」のこと。並び順がばらばらの数字の列を並べ替える方法には、たくさんの種類がありますが、その中でも「バブルソート」はもっとも単純なものの一つ(ただし並べ替える数が多くなると時間がかかります)。

 

少し前には、アメリカのオバマ元大統領が、グーグルのCEOの「100万の32ビット整数をソートする効率的な方法は?」という質問に対して、「バブルソートを使うのは間違いでしょう。」とウィットに富んだ回答をした、なんてエピソードが話題になっていました。

 

そのバブルソートを使った並べ替えの方法の説明は、あえて省いて、プロデルでプログラムを書いた結果を載せてみると、こんな感じになります。

 

並べ替える数字は、{9,6,3,4,2,1,8,7,5,10}

9回、回数にカウントしながら繰り返す
  [回数]でバブルソートする
繰り返し終わり

並べ替える数字を表示する

 

[回数]で、バブルソートする手順

  10-[回数]回、現在位置にカウントしながら繰り返す

    並べ替える数字(現在位置)を数字1に入れる
    並べ替える数字(現在位置+1)を数字2に入れる

    もし数字1>数字2なら
      並べ替える数字(現在位置)は、数字2
      並べ替える数字(現在位置+1)は、数字1
    もし終わり

  繰り返し終わり

終わり

(*プログラマーな方への注釈:「~する手順」から「終わり」までの間は、「関数」になっています。メインプログラムは最初の五行までです。)

 

日本語で書かれたプログラムだけを見て、どんな並べ方をするアルゴリズムなのか、なんとなく想像できましたか?

 

このように、日本語のプログラミング言語は、アルゴリズムを試し書きして、効率のよい計算の仕方をいろいろ模索するのにも、向いているかもしれない、と思いました。

 

まとめ

「プロデル」は、親しみやすい日本語を使っていながら、簡単なプログラムから、複雑でいろんなことをさせられるプログラムまで、幅広いプログラムを書くことができます。

 

なので、Scratchでプログラミングの楽しさに目覚めたお子さまが、大人向けのツールを使うまでの、橋渡しのステップにちょうどよいツールなのではないかと思いました。私なら、自分の子どもにプログラミングを教えるときには、そうするかな。

 

この記事を読んで「日本語プログラミング、ちょっと面白そうかも!」と思われた方は、ぜひぜひダウンロードして使ってみてくださいね~。

 

よろしければ、こちらの記事もどうぞ。

 

www.smartstyle-blog.net

 

www.smartstyle-blog.net

 

スポンサーリンク