scratch ロゴ

医大生が解説!小学生がプログラミングを学ぶならscratchがオススメな理由

質問者
子どもにプログラミングを学ばせたいけど具体的に何を勉強させればいいんだろう?

本記事では上記の疑問に答えていきます。

 

結論から言うと、小学生にはscatchがオススメです。

この理由について、僕のプログラミングを1年以上触れてきた経験をもとに解説していきます。

 

こんにちは!僕はプログラミング歴1年のShinと申します。
僕は現在医学部に在籍していて、プログラミングを趣味やアルバイトの一環として勉強しています。
僕が触れているのは主にWeb制作で、最近はPythonと5つの言語に触れています。

多くの言語に触れてきた身からしても、scratchはとても学びやすい言語なので、ほかの言語との比較なども交えながら解説していきます。

 

ノーコードなので挫折しにくい

成果の現れ

プログラミングでの難点を上げるのであれば、まず最初に出てくるのがこの「挫折」ではないでしょうか。

最近はやりの「プログラミングブーム」では、多くの人がプログラミングに興味を持ち、短い期間でプログラミングをやめていきました。

 

プログラミング挫折理由

(引用:PR TIMES

この表は「プログラミングを勉強した人がなぜ挫折してしまったか」についてまとめられた資料になります。

上位3つを並べると

・不明点を聞ける環境になかった
・エラーが解決できなかった
・モチベーションが続かなかった
この3つになります。
特に上位2つに関しては、おおよそ「コードにまつわる問題」です。

そもそもコードって?

コード

ざっくり説明すると上の図のように記述すること。
まあ、よくドラマとか映画とかでイメージするやつですね。
コードは例えば全角で書くとエラーが出たりスペルが少しでも間違ってたら動かなかったりと、かなり厳密なものです。
でも、プログラミングを勉強する目的って何?
ってことを考えると、あまりこの辺に時間はかけたくないところです。
いわば、ここら辺の作業は裏方の作業になります。
結婚式の会場づくりと考えると分かりやすいと思います。
結婚式がしたいと思ったときに、新郎新婦が会場づくりで頭を悩ませるのは変な話ですよね?
新郎新婦がすべきことは結婚式をすることであって、会場づくりはあくまで土台であるのと同じです。

 

プログラミングの話に戻すと、「ゲームを作りたい」とか「機械学習を勉強したい」と思っているのに、コードでつまずいてしまうと学習のスタートラインにすらたどり着くことができなくなります。

コード問題がないscratchについて

スクラッチ

scratchでは、ほかのプログラミング言語の学習で発生するコードでのエラーが発生しません。

 

冒頭で挙げた挫折するポイントをもう一度上げます。

・不明点を聞ける環境になかった
・エラーが解決できなかった
・モチベーションが続かなかった

 

scratchではそれぞれの問題に対して

・不明点を聞ける環境になかった

→小学校内外での教育で使われていることが多いので、学校の先生や同級生はもちろん、ネットやyoutubeなどで解決できる環境がある。

・エラーが解決できなかった

→コードを書かないのでエラーで挫折することもなく、運営側に問題がなければバグも発生しないので学習をスムーズにできる

・モチベーションが続かなかった

→「scratchコミュニティ」があり自分の作品を公開したり、ほかの人の作品で遊ぶこともできるので刺激をもらいやすく、飽きにくい

と、「プログラミングでの挫折」を避ける取り組みがなされています。

 

scratchはコードを書かない代わりに「ブロックを積み上げていく」作業でプログラムを実行していきますが、ほとんどすべての操作をマウスを使ったクリック操作で行っていくことになります。

そのため、始めるまでの勉強がほとんどいらず、学習環境をつくるのにも手間がかからない分、小学生にはオススメの言語です!!

 

scratchでできる幅が広い

選択

僕が感じたscratchの一番のメリットはこれです。

 

scratchの強みは、「プログラミング関連でやりたいことを言語一つで大体実現できる」ことだと思います。

scratchは、例えばテトリスやマリオゲームといったゲーム関連、人工知能をはじめとした機械学習、オリジナルの音楽をつくることができます。

 

本来、プログラミング言語には得意分野があってそれに応じた学習が必要になります。

例えば、ゲーム関連→Unity,Javascript

機械学習→Python

webサイト→HTML,CSS,Javascript など。

 

一つ一つの言語がそれぞれ違った文法があるので、例えばwebサイトを作りたいなら3つの言語を習得する必要が出てきます。

そのためやりたいことが明確でなかったり、文法の多さにこんがらがってしまうことが多いと思います。

 

ほかのプログラミング言語の弱点を補えて、網羅的に学習を進められる点がscratchの強い点です。

もちろん、網羅的に学習できる分「広く浅く」の学習になってしまいます。

ただ、「プログラミングってこんなことができるんだ」というプログラミングの奥深さを学んだり、学習していくうちに興味のある分野を専門的に学習するときの起点にもなるので、初めはscratchでの学習をしてみてはいかがでしょうか。

 

 

基本的なプログラミングの「動き」が分かる

正しい認識

プログラミングの「動き」はどの言語でも学べます。
なので、簡単といわれているscratchで学ぶのが、効率的だと思います。

 

質問者
「動き」って何?

 

これに関しては、結論:入力→出力のこと。

「入力」とは指示出しをすることです。

例えばAmazonで欲しいものがあったら、購入のボタンを押しますよね?
これが入力になります。

「出力」とは、命令(入力)を受けて、それに対して返答を返す作業になります。

Amazonで購入した商品が家に届くまでの作業に当たるのが、出力になります。

 

学校とかで見られる例で行くと、
先生が「走れ」と命令する(入力)→先生の命令を受けて生徒が走る(出力)の流れになります。

 

この作業をパソコンやタブレットで行うのが我々の知るプログラミングとなります。

 

命令を出す手段として、

  • 比較(AとBを比べてA>Bなら命令する…など)
  • 条件分岐(Aが○○だったら命令する…など)
  • 反復(Aが○○するまで命令し続ける…など)

などが出てきます。

 

とまあ、つらつら難しい言葉を並べましたが、感覚的にプログラミングの命令の仕組みを学べます。

この仕組みはどの言語でも変わらないので「常識」を身につけるにも最適だと思います。

 

まとめ

終わりの合図

いかがだったでしょうか。

 

まあ、結局は子どもの好奇心を満たすことが一番大切です。

「好きこそものの上手なれ」という言葉があるように、好きなものは自分で探求しますし、どんどん上達していきます。

好きなものがゲームなのか音楽なのかは人それぞれですが、興味をプログラミングと結びつけて挙げることが大切だと思います。

2020年から小学校でのプログラミング教育が取り入れられたように「プログラミング」の重要性が増してきている昨今ですが、プログラミングに苦手意識を持つ人が多いように感じます。

プログラミングは本来「人間の作業を手助けするもの」なのですが、どうも嫌な奴と思っている人が多いです。

 

小さいときに持つイメージは大きくなってからも残るので「プログラミング=楽しい」というイメージを持たせることは、将来何になるかに関わらず持っておいて損のないことだと思います。

 

なので、まずは下調べとして、scratchと子どもの関心をつなげる糸口を見つけてみてはいかがでしょうか。