本記事では上記の疑問に答えていきます。
結論から言うと、小学生にはscatchがオススメです。
この理由について、僕のプログラミングを1年以上触れてきた経験をもとに解説していきます。
こんにちは!僕はプログラミング歴1年のShinと申します。
僕は現在医学部に在籍していて、プログラミングを趣味やアルバイトの一環として勉強しています。
僕が触れているのは主にWeb制作で、最近はPythonと5つの言語に触れています。
多くの言語に触れてきた身からしても、scratchはとても学びやすい言語なので、ほかの言語との比較なども交えながら解説していきます。
ノーコードなので挫折しにくい
プログラミングでの難点を上げるのであれば、まず最初に出てくるのがこの「挫折」ではないでしょうか。
最近はやりの「プログラミングブーム」では、多くの人がプログラミングに興味を持ち、短い期間でプログラミングをやめていきました。
(引用:PR TIMES)
この表は「プログラミングを勉強した人がなぜ挫折してしまったか」についてまとめられた資料になります。
上位3つを並べると
・エラーが解決できなかった
・モチベーションが続かなかった
そもそもコードって?
新郎新婦がすべきことは結婚式をすることであって、会場づくりはあくまで土台であるのと同じです。
コード問題がない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と子どもの関心をつなげる糸口を見つけてみてはいかがでしょうか。