スポンサーリンク

Scratchがプログラミングの導入によさそうなので解説します

子供にプログラミング教えたいけどどうすれば…
大人になってからでもプログラミングできる?

こうした悩みを解決します。

本記事の内容:
・プログラミングを学ぶにはScratchがオススメ

解説の根拠

私は組み込みエンジニアとして日々プログラミングしています。言語はC。
詳細は下記記事をご覧ください。


これから2020年より義務教育にプログラミングが必修化されるということで注目しています。
簡単なものだとマイクロビット、作り込むにはレゴプログラミングなど
子どもにウケるようなものがたくさん出ていますが、いきなりここから入るのは危険だと思うんですよ。
なんたっていきなりハードウェアが絡むものをプログラミングをやったことない、
ましてパソコンを触ったことがないかもしれない子どもたちには何が何やらです、きっと。

だから、とりあえずプログラミングだけに集中できるものがやっぱり導入としては良い。
そこで教育目的で作られたScratchに目が向いて触ってみた次第です。

スポンサーリンク

Scratchとは

Scratch(スクラッチ)は、ビジュアルプログラミング言語です。

…簡単にいうと、命令や演算、動作などの処理が1つずつブロックになっていて、
これらをつなぎ合わせることでプログラムを作り込んでいきます。

オンラインでもオフライン(用インストール)でも使用可能です。

初心者向き

Scratchを触ってみて早々に「これいいねー!」と思いました。

・ソースコードをイジる必要がないので、簡単に作れる、直せる
・プログラミングして動作を確かめて修正する、とプログラマーの実作業を体験できる
複雑な処理も最小限の動作の組み合わせであることが視覚的に分かる
・意図しない動作を心配する必要がない(0x5Cとかグローバル変数とか組み込みやってる人には分かる)

これはちょっとなあ、と思う部分もありますよ。
・待ちがC言語で言うwhileみたいなもんで、待ってる間に何もできない(組み込みでこれは許されない)

待ちで処理を占有されると他の処理に影響するので避けたいところですが、
そこまで求めなくても、これだけできれば十分プログラミングを学ぶことができます!

Scratchの処理をC言語で書いてみる

たとえば上記の処理をCで書くと、下記のような感じになります。

〜〜〜〜〜
//定義
#define TRUE 1
#define FALSE 0
char push_space;
//char buzzer; //未使用

//初期化
void init(void){
push_space = FALSE;
// buzzer = FALSE;
}

//キー検出割り込み
○○

//音を鳴らす
void Set_buzzer(char buzzer){
if(buzzer == TRUE){
ブザー鳴らす
} else {
ブザー止める
}
}

void main(void){ //緑フラグが押された時、の部分
init();
while(1){ //ずっと、の部分
if(push_space == TRUE){ //もしスペースキーが押されたなら、の部分
Set_buzzer(TRUE); //〜の音を鳴らす、の部分
} else { //でなければ、の部分
Set_buzzer(FALSE); //すべての音を止める、の部分
}
}

〜〜〜〜〜

このように実際にプログラミングする時は、
変数の宣言や初期化、キー検出のポート設定、外部入力の割り込み設定と処理
などとにかく記述が多くて大変です。
もう見た目からして受け付けられない人もいるでしょう。
Scratchではブロックによってこうした記述がなくなるので、取り掛かりやすいですね。

まとめ

・プログラミング初心者にScratchオススメ!

下記のリンクから登録してやってみるとよいです。

Scratch - Imagine, Program, Share
Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.



2+

コメント