最近プログラミングに関して、こんなニュースがありました。
プログラミング教育 小学校での必修化 検討始まる(NHK NEWS WEB)
【参考】
小学校段階における論理的思考力や創造性、問題解決能力等の育成とプログラミング教育に関する有識者会議(文部科学省)
今回はそんなコンピュータ・プログラミングについて(ちょっとだけ)ご紹介します。
まずは簡単な例を1つ
入力された2つの「数字」を足して、右の枠に表示するプログラムです。
このプログラムはこんな感じです。
(実際にはこの他に入力欄やボタンを表示するための記述があるのですが、本題からはずれるので今回は省略します。興味のある方はこのページのソースを見てください。実用に供するには、さらにエラー処理などを追加する必要があります)
やっている事が単純なので、プログラムも短いです。
順番に説明すると、こんな感じです。
- 使用する「プログラム言語」名が書いてあります(この例では javascript)
- 【=】ボタンが押された時に処理を実行する「関数」名が書いてあります(この例では example_add())
- 左の枠内の値(document.getElementById('num_a').value)を、変数(var) num_a にしまう。
- 中の枠内の値(document.getElementById('num_b').value)を、変数(var) num_b にしまう。
- num_a と num_b を足して、変数(var) answer にしまう。
- 右の枠内(document.getElementById('answer').value)に answer の値を表示する。
- 関数の終わりを表しています(})
- プログラムの終わりを表しています(</script>)
(分かり易いように都度変数にしまっていますが、変数を使わずに済ませてしまう事もできます)
プログラミングを「学ぶ」とは
実際のプログラムを見てなんとなく分かりましたか?
「ばっちり分かる」とか「ここってどうなの?(とツッコミを入れたい)」という方…自分でプログラムを組んだ経験がありますね?
「細かい事は分からないが、大筋の流れは分かる」という方…プログラマの素養ありです。
「ぜんぜん分からない」という方…1つづつ順番に学んでいけばOKです。
さて、「プログラミングを学ぶ」という言葉にはいくつかの異なる面があります。
- 入力に対してどのような処理を行いどう出力するか(アルゴリズム)を設計する方法を学ぶ
- プログラミング言語について、その文法や関数を学ぶ
- プログラミング・ツールの使い方を学ぶ
この中で一番重要なのは1つ目のアルゴリズム設計です。これができないとなにもできません。
「アルゴリズム」というと難しそうですが、料理でいえば調理手順にあたります。
つまり、材料(入力)をどういった順番で調理するか(アルゴリズム)を決められるようになればよいわけです。
アルゴリズムが決まれば、あとは実際にプログラミングを行うわけですが、その際に2つ目と3つ目を学ぶ事になります。(実際にプログラムを組むには2だけでもよいのですが、効率や品質を考えた場合はツールを使うのが一般的です)
これらは料理でいえば、調理器具にあたります。例えば、同じ「皮を剥く」という作業を行うにも、初心者はピーラー(ツール)を使った方が早く安全にできますが、慣れてくれば包丁の方が無駄なく綺麗に仕上がります。
プログラム言語は上で使った「javascript」の他に、とてもとてもたくさんの種類があります。
実際にどのプログラム言語を使うかは、「何をしたいか」などを考慮して選択する事になります。
で、それぞれのプログラム言語にはそれぞれの文法(作法)とそれぞれの関数などがあって、それを憶える必要があるわけですが、その負担を軽減してくれるのが「プログラミング・ツール」になります。(子供向けのプログラム教室などでは、プログラミング・ツールがプログラム言語を完全に隠してしまっている事が多いようです)
とりあえずやってみようと思ったら
少し興味がでてきましたでしょうか?
プログラミングについては、多くの書籍が出版されていますし、ちょっと検索すれば特定のプログラム言語について紹介しているサイトがたくさん表示されます。
いざ「プログラミングを学ぶぞ」と意気込んでみても、それらの中からどれを選べばよいかを決めるだけでも大変だと思います。
そこで、まずは一度プログラミング教室などで実際に経験してみてはいかがでしょう。
その際は特定のプログラム言語を対象としたものではなく、アルゴリズムの設計に主眼をおいたものがよいと思います。(子供向けの教室に多いのですが、大人向けは少ないようですので、お子さんと一緒に行ってみるのも1つの手ですね)