子供からのプログラミングがブームになりつつある近年、視覚的に学習できるビジュアルプログラミングが普及し、とっかかりも大分楽になってきました。

Scratchはその代表格、最近ではNHK教育テレビでもその使い方を教えるほどの人気です。

C、PHP、Javaなどの従来のプログラミング言語とScratchが大きく違うところは、Scratchはめんどうな言語固有の文法を覚えなくて済むこと。しかも日本語にも対応しています。動き、見た目、制御といった簡易的なブロックの使い方がわかればプログラムが出来てしまいます。小さなお子さんがプログラミングを始めるにはもってこいのツールです。

しかしそこには落とし穴があります。

残念ながらScratch上で漠然とブロックを重ねプログラムを作るだけでは、プログラミング能力やその学習から得られる論理的思考力はさほど向上しません。

しかもScratchのブロックをすべて記憶したうえで、反復練習のようにプログラムを急いで作るのはむしろ逆効果、それはなぜでしょうか?

それはScratchを使えば正しい構文(アルゴリズム)を理解しなくてもプログラムが視覚的にかけてしまうからです。分岐処理や反復処理などが正しく使われていないブロックを積み重ねただけの、アルゴリズムを持たないプログラムはときに『スパゲッティコード』と呼ばれます。実行順序やデータが複雑に絡み合い、第三者が見て改修やメンテナンス、仕様変更が困難なコードのことです。

大切なのはアルゴリズムを意識・理解しながらプログラミングすること、それらを理解した上で初めてどのようなコーディングデザインが効率的かが見えてきます。プログラミングから得られる論理的思考力も『効率を考えぬいた先で得られる力』です。

結論として、

プログラミング ⇒ アルゴリズム ではなく、

アルゴリズム ⇒ プログラミング

これがプログラミング習得の近道です。

ご自宅でスクラッチプログラミングを取り入れている親御さんは、お子さんがアルゴリズムを意識しながらプログラミングをしているかどうか、今一度確認してみてはいかがでしょうか。