Scratchで本当にプログラミング力は身につく?―エンジニア目線で考えてみた
子どものプログラミングについて調べると、かなりの確率でScratchに行き着きます。
でも、エンジニアの立場から見ると、私も最初は少し疑問がありました。
「ブロックを並べるだけで、本当にプログラミングになるんだろうか?」
仕事ではGoやJava、Pythonのような文字で書くプログラムを扱います。Scratchの画面を見ると、ゲームを作る遊びのようにも見えます。
それでも、子どもの最初のプログラミングとしてScratchがよく使われるのには理由があります。
Scratchで学ぶのは「文法」ではない
普通のプログラミングでは、ちょっとしたスペルや記号のミスで動かなくなります。
Scratchではブロックを組み合わせるので、こうしたミスがかなり減ります。
その分、「どういう動きにする?」「どんな条件なら、この処理をする?」に集中できます。
条件分岐、繰り返し、変数、イベント、座標、メッセージ。
普通のプログラミングにもつながる考え方がたくさんあります。
あとでPythonに進んだときに、「これ、Scratchでやっていたアレか」とつながることがあります。
最初から文字でコードを書くことより、まず「動きの仕組み」を理解する。Scratchはそこに集中しやすい道具です。
ただ遊んでいるだけでは、少しもったいない
Scratchを使っていれば、自動的にプログラミングが身につくわけではありません。
おすすめは、
遊ぶ → まねする → 変える → 自分で作る
という流れです。
最初は人が作った作品で遊んでもいい。次にチュートリアルを見ながら同じものを作る。そして、そこから一つ変えてみます。
敵を増やす。スピードを変える。ライフを3つにする。ステージを追加する。
この「変える」がかなり大切です。
見本通りに作るだけなら、手順をなぞるだけでも完成します。でも、自分で一つ変えようとすると、「どこを変えればいいんだろう?」と考える必要が出てきます。
「動かない!」は、かなりいい教材
システムの不具合調査では、「どこまでは正常なのか」を確認します。
Scratchでも同じです。
「どこまでは動く?」と聞いてみる。
キャラクターは動く。敵も動く。でも敵に当たってもゲームオーバーにならない。
そこまで分かれば、見る場所をかなり絞れます。
最初から正解を教えるより、「どこまでは動いているか」を一緒に確認する方が、プログラミングらしい考え方につながります。
最初からPythonではダメ?
本人が興味を持っているなら、Pythonから始めても構いません。
ただ、「将来役に立ちそうだから」という理由だけで選ぶのは、少し慎重になってもよいと思います。
Pythonでは、キーボード入力、英単語、記号、エラーメッセージなど、作りたいものとは別のところでつまずくことがあります。
Scratchは最初の「できた!」までの距離が短いのが強みです。
もちろん、最初からPythonに夢中になる子もいます。大事なのは、「何歳ならこの言語」という順番に当てはめることではありません。
Scratchはいつ卒業する?
「何年生になったらScratchを卒業するべきですか?」という考え方は、あまりしなくてよいと思っています。
卒業のタイミングは年齢より、「Scratchでは作りにくいものを作りたくなったとき」です。
Webサイトを作りたい。AIを使いたい。本格的なゲームを作ってみたい。文字でコードを書いてみたい。
そんな欲求が出てきたときに、PythonやJavaScriptなど別の道具へ進めばいい。
エンジニアはつい、技術を「初級→中級→上級」のように並べたくなります。でも、それは大人が整理しやすい順番でもあります。
子どもがきれいな順番で学ぶ必要はありません。
AIが出てきて、Scratchの次も変わってきた
以前は「Scratchの次はPython」というルートが分かりやすかったですが、今はその間にAIを入れられます。
たとえば、Scratchで作ったゲームを見ながら、
「もっと面白くするにはどうしたらいい?」
とAIに相談する。
そこからアイデアを選んで、自分で作品を改造してみる。
AIに全部作ってもらうのではなく、自分の作品を改造する相談相手として使うのは、面白い学び方です。
Scratchで目指したいところ
教材を何冊終わらせたかより、「自分の作品をいくつ作ったか」を見たいと思っています。
小さなゲームでも、クイズでも、アニメーションでも構いません。
「自分で考えたものを作ってみた」という経験が増えていけば、Scratchは十分にプログラミングの入口になります。
Scratchはゴールではありません。
テクノロジーを使って、自分のアイデアを形にするための、最初の道具の一つです。
次の記事では、Scratch、Minecraft、micro:bit、Python、生成AIを比べながら、「結局、うちの子は何から始めればいいの?」を整理します。
