子供にプログラミングを学ばせる前に知ってほしいこと。




caution
 
こんにちはプロクラス代表の吉田です。
ヨシダミツヒロ(@milan40920)
 
今回は、これから自分の子供にコンピュータプログラミング(以下、プログラミング)を学習させたいという方へ、どのようなポイントを意識して学ぶと良いかについて少し書かせていただきます。
 

☆実現したいイメージを持てる人になろう!

 
「子供にプログラミングを学ばせたい!」という保護者の方に私がよくお話するのですが、
 
プログラミングを学習する場合、まずは
・プログラミング言語(※1)の知識
を学ぶ必要があります。
これはプログラミングを教えているところで必ず教わるのですが、他にも同時に行うべき大切なことがあります。
 
巷ではプログラミングだけがフォーカスされていますが、まず大切な前提として、
全ての考え方と同様にプログラミングにも「目的」と「手段」という考え方が当てはまり、
・プログラミングは手段(ツール)である
ということです。
そう、例えればそろばんや電卓のようなポジションという訳です。
 
そろばんや電卓とは違い、プログラミングはそれ以上に便利なもので、自分の考えた手順をプログラミング言語を使って機械やロボットに命令する(これをソフトウェアと言います)と、機械やロボットはその通りに動いてくれるので、実現したい目的イメージを持っている人は目的を達成するためのとても有効な手段になります。
 
ここで考えていただきたいのは、「手段が目的化していないか」です。
 
手段(プログラミング)だけを覚えてもプログラミングの知識だけを得て、「それをどう使えばいいのか?」という目的探しになってしまいます。
初めは新鮮で楽しいかもしれませんが、繰り返し同じ事を行う事が多いため、学んでいく途中で目的が無いと退屈になり、早い段階でやがては。。。と想像の通りです。
 
例えば、「体型維持のため腹筋を鍛えたい」のが目的の腹筋運動はできたとしても、誰も腹筋運動だけを目的に、毎日続けて出来る人はなかなか少ないと思いませんか?
 
 
ですので、手段となるプログラミングでコンピュータに命令する前にしっかりと以下の2つを行なってからプログラミングを学ぶ事をお勧めします。
 
それは、
1)何をするためにプログラミングをするのか(実現したい目的を明確にする)
 
2)どのような手順でプログラミングをするのか(アルゴリズム(設計)をしっかり考える
 
この2つを考えてからプログラムを組むことです。
 
「1」は先ほどの目的意識を持つことにより、しっかりと学習するメンタリティや目的に対してぶれない思考を持つ事ができ、「2」はプログラミングする事よりも、このロジック(論理的)思考過程がかなり大切で、ここで考えた事が論理的思考脳を鍛えてくれていると言っても過言ではありません。
その考えた内容(目的の達成手順)をコンピュータに打ち込んでいく(プログラミング)行為なのですから。
 
何を作ろうとしているのかを改めて自ら考えて、どんな順序で作るべきなのかを自ら考えられるようになる力が養われるというわけです。
 
 
もう少しわかりやすくするために、小さな事例で考えてみることにしましょう。
 

☆おつかいで考えてみる

 
「1):目的」について考えてみます。
子供におつかいを頼むことを考えてみたとき、子供に伝える目的は何にすべきでしょうか。
 
A)「ジャガイモ、玉ねぎ、ニンジン、牛肉を買って来て」と欲しい材料を伝える
 
B)「今夜はカレーの材料のジャガイモ、牛肉、玉ねぎ、ニンジンを買って来て」と完成形の情報(やイメージ)と材料を伝える
 
良い回答は「B」です。
 
なぜなら、もし材料を忘れそうになった時でも「カレーを作るためには・・・」と完成形を元に情報を引き出しやすくなることもですが、ただの暗記ではなくなるからです。
もしかしたら、もう少しアレンジしてリンゴを買ってきてくれたり、牛肉が売り切れていたら、鶏肉や豚肉を代わりに買うという目的からずれない選択肢も考えつくかもしれません。
完成形を明確にすることは、自ら考える力を与えてくれる重要な情報なのです。
 
また、実際の買い物をするシーンで「野菜を買う」と買い物の種類のカテゴリを把握しておくことによって、買い物の順番を野菜コーナーで野菜をまとめて買い、肉コーナーで買う牛肉は最後にした方が効率がいいと考え、スーパーを歩く順序を考え時間短縮をすることができます。
 
ということで、おつかいの「2):アルゴリズム設計」について考えてみますと、
◆家から→◆靴を履いて→◆家を出て→◆移動→◆スーパーへ入り→◆野菜コーナーで→◆ジャガイモ、玉ねぎ、ニンジンを買って→◆肉コーナーで→◆牛肉を買って→◆お金を払って→◆袋に詰めて→◆移動→◆家に戻り→◆靴を脱いで→◆家に入り→◆野菜と肉を調理して→◆カレーを作る
です。
 
このおつかいプログラムのアルゴリズムをイメージした後にお母さんと実施する内容を確認し合い(これをコードレビューといいます)間違いがない場合、おつかいプログラムを実施することで、効率良いおつかいプログラミングが実施され完成します。
 
アルゴリズムを事前に考えることはとても大切で、論理的な思考がなければできないスキルです。
ここを養うためには、しっかり「目的とアルゴリズム設計」を意識して考えるようにしてあげてください。
ただプログラムをやみくもに組み上げるだけでは得られない頭脳になります。
 
私たちが学んで来た学校教育でも同様に、算数や数学の数式、理科の化学反応式、英語の文法などにも本来「なぜこれを使う必要があるのか。どのような場面で必要となるのか」といった「目的」があるはずなのですが、あまりそこは明確になされず「手段」が重視されてきたため、目的を明確にする意識が弱い気がします。
 
プロクラスでは「目的」や「アルゴリズム」を事前に考えてプログラミングに取り組む方法を取っておりますので、一度ぜひ無料のプログラミング体験に来てください。
 
プロクラスの吉田でした。
ヨシダミツヒロ(@milan40920)
 
※1)C、C#、Ruby on Rails、JAVA、LUA、Scratchなど