『Scratchは、MITメディア・ラボのライフロング・キンダーガーテン・グループの協力により、Scratch財団が進めているプロジェクトです。https://scratch.mit.edu 』
最近子供用の教育教材を見ていると「これはプログミングなのか?」と思うものをよく見かけます。
子供向けにいい教材がないかを調べたところ「Scratch」がありました。これを勉強することで、どの程度のプログラミング力がつくのか調べました。
この記事を読むことで、子供に「Scratch」を勉強させる意味があるかが分かります。
私のスキルとしましては、基本的にどんなプログラミング言語(c言語、dart、python・・・)でも扱えます。プログラミング言語は本質的なところさえ学習してしまえば、あとはどの言語も似た様なものなので。
結論
学習の意味はあり。
ただし、scratchを学習する事でプログラミング言語の基礎が全て習得できているわけではない。
不足箇所は別途学習の必要があるが、導入としては十分。
調べたこと
私が思う最も簡単で実用的なプログラミング言語pythonと比較します。
「pythonの絵本」という本があるため、この本を基準に比較をしていきたいと思います。
「pythonの絵本」目次
scratchで学習可能な領域 | |
第1章 基本的なプログラム | ✅ |
第2章 計算の演算子 | ✅ |
第3章 リスト | – |
第4章 制御文 | ✅ |
第5章 関数 | ✅ |
第6章 文字列 | – |
第7章 ファイルと例外処理 | – |
第8章 クラスとオブジェクト | – |
第1章 基本的なプログラム
・「pythonの絵本」では文字を表示させる方法、変数の説明がされています。Scratchで言うと「変数」に該当するでしょう。こちらはScratchで学習できそうです。
・また、Scratchはブロックを組み合わせる様にプログラムを作成しますが、pythonはテキストでプログラムを書いていきます。このあたりにも違いがありますすが、ブロックかテキストかは本質的な違いではないため特に気にする必要はないと考えます。

第2章 計算の演算子
足し算や比較等の演算子の扱い方になります。pythonの演算子は数多く存在しますがScratch上のものはよく使用されるものが上がっている印象です。こちらもScratchで学習可能でしょう。

第3章 リスト
こちらは、Scratch上の文法では存在しておりませんでした。リストは変数をまとめるための文法です。データがひとまとまりになっていることでプログラミングする際、データが扱いやすく処理がしやすくなります。なので、欠かすことができない機能となります。こちらは、プログラミング言語を習得する際は学習する必要があります。
第4章 制御文
制御文はプログラミングをする上で最も重要なものとなります。Scratchでは基本的な制御文が用意されているため、こちらもScratchで学習可能です。

第5章 関数
1つのファイルにプログラミングを記述していくと何の処理をしているのか、よくわからないものが出来上がります。ある程度の処理の単位でプログラムを分ける文法が関数となります。これもScratchには用意されております。

第6章 文字列
「pythonの絵本」では、文字列の取り扱いについてまとめられておりました。文字列を検索、置換等する方法になります。こちらはもちろん知っていた方が良い内容ですが、(作成するアプリケーションによっては)学習必須とは言えない内容となります。
第7章 ファイルと例外処理
テキストファイルをpythonで開く方法や、プログラミング実行中に文法エラーが起こった場合の処置をするための文法です。こちらももちろん知っていた方が良い内容ですが、必須とは言えない内容となります。
第8章 クラスとオブジェクト
オブジェクト指向の内容となります。スマートフォン向けアプリや、Webアプリを作成する上で欠かすことができない文法となります。(世の中にあるほとんどのプログラムはオブジェクト指向で書かれています。誰かのプログラムを参考にする場合読めないと辛いです…)
こちらはScratchで学習することはできないです。
まとめ
・Scratchはプログラミングの導入としては十分。
・本格的にプログラミングを始める場合はリストやオブジェクト指向等、不足知識は補っていく必要はある。
コメント