高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

日本語プログラミングねえ…

なんだかんだ言ってくさばさんのチャットに行ってしまいました。2対1で授業できるような感じで楽しいです。まあ、学校でもいろいろ教えてはいますから、それの延長上のようなものですが…。さしずめ、教授がくさばさん、助教授がわたしで、生徒が明日美さん(yurliさんがあちらで名乗っている名前)と言った感じ。


さて、わたしはプログラミングの問題を教えるときに、いつも「日本語に直して考えてみて」という言い方をします。プログラミング(コーディング)なんて、英語で命令を書いてるだけなんですから、それを日本語に直したところで、意味合いは変わったとしても内容は変わりませんからね。
どんな複雑なプログラムでも、複数の命令ブロックに分けることが出来ます。単位はブロックでも何でも良いですが、たとえば「Math.floor(Math.random() * 100)」は、「0〜100までの乱数をだす」と言う日本語に置き換えられますね。日本語ならばもちろん皆さん慣れ親しんでるでしょうから、簡単に出来るというわけです。
これ、結構効果絶大で、これで行くとたいていうまくいきます。まあ、日本語のブロックにしてしまえば積み木と同じですからね。国語力だけで勝負できます。

日本語というとまず思い出すのは、「ひまわり」をはじめとする日本語プログラミング言語
他の言語だと 元言語→日本語→組み替え→元言語 と言う流れになりますが、これら言語は日本語→組み替え ですむのです。前者だと「元言語→日本語」や「組み替え→元言語」でつまづきやすいですが、日本語プログラミング言語ならそのもっとも危険な(?)プロセスをスキップできます。
そう考えると日本語プログラミングって重要なのかなあ…?日本語の多様性を持ち出してしまうとちょっと本末転倒な感じですが。入門用に日本語プログラミング言語を勧める?と言うのもあながち間違いではないのかな と思ったり。
そう考えてみると、確かベクターで見かけた 「フローチャート→プログラムな言語」や、「積み木→プログラムな言語」なんかも結構いけるんでしょうね。


プログラミング言語を考えるなら、それらも考える必要がありますよねえ、疑似言語((知らない人も多いかと思いますが…、FEなどで出てくる、フローチャートとプログラム言語の中間みたいな言語です(当時の先生の台詞丸写しですね(ーー;))))かな?ちょうど良いけど、カスタマイズ性に欠けそう。そもそもプログラミング言語でカスタマイズ性云々言う時点でどうかとは思いますけど。コーディングと疑似言語の2way などというと疑似言語→コードは出来ても、コード→疑似言語は出来ないというおかしな話になりそうだし。
まあ、C#のように、メソッドごとにコードか疑似言語か、選択できるあたりが妥当なのかも。なんかJNIな感じ(意味不明)、みゅ〜