KidsVentureプログラミング教室in埼玉県立越谷特別支援学校

さくらインターネットでは、さまざまな企業と共同で「KidsVenture」という非営利団体を運営しています。

KidsVentureは2015年に設立され、子ども向けの電子工作・プラグラミング教室を運営しています。電子工作・プログラミングを通じて「ものづくり」の楽しさを伝え、挑戦意欲溢れる次世代の創出に貢献することが目的です。子どもたちの将来の可能性を広げるきっかけとなることを目指しています。

新型コロナウイルスの影響で対面での活動ができずにいましたが、2021年10月15日、約2年ぶりに子ども向けプログラミング教室を開催しました!

 

開催した場所は、埼玉県にある「埼玉県立越谷特別支援学校」です。こちらの学校は「障害者等が高等学校に準じた教育を受けること」と「学習上または生活上の困難を克服し自立が図られること」を目的としています。

この埼玉県立越谷特別支援学校の高校1年生と2年生に、プログラミングを体験してもらいました。みなさんプログラミング未経験です。

KidsVenture講師のあいさつ

KidsVenture講師のあいさつ

 

この日講師をつとめるのは、さくらインターネットの尾村亮多です。尾村はKidVentureの代表でもあります。

「身のまわりにあるコンピュータはどのようなものがあるでしょう?」と尾村が尋ねると、学生のみなさんから「パソコン、スマホ、デジタル時計」などの回答が。すべて正解です。

こうしたコンピュータを人が動かすには、コンピュータが理解できる言語を使って命令する必要があります。その言語が「プログラミング言語」です。

 

コンピュータにやってもらう

 

実際に授業でプログラミングを体験してもらい、コンピュータに命令していきます。

課題は「ずっとLEDを点滅させる。つける時間と消す時間はどちらも1秒間にする」です。

【1時間目】IchigoJamを使ってLEDを光らせる

IchigoJamを使ってLEDを光らせる

授業では「IchigoJam」を使い、プログラミングによってLEDを光らせます。

IchigoJamとは、初心者向けプログラミング言語BASICを現代風に復活させた、子ども用プログラミング専用パソコンです。 

テレビとキーボードをつなぐだけのシンプル構造で、インターネットへの接続等ができません。プログラミングのみに集中できる設計になっています。

※IchigoJamは株式会社jig.jpの登録商標です。

 

プログラミング開始

さっそく、プログラミング開始です。

まずはじめに、LEDを光らせてみます。

 

LED1

 

と入力することで、LEDがつきます。

 

LED0

 

と入力することで、LEDが消えます。

 

LEDをつける

 

LEDが光り、教室では「おお、光った」と声がしました。

続いて「:(コロン)」を使っていきます。

 

LED1:LED0

 

と入力することで、LEDがついて消えます。

:(コロン)は命令をつなげる記号です。

 

プログラミングを進めていきます

LEDを”1秒だけ”光らせたい

LEDを”1秒だけ”光らせたい

 

LEDをつけて消すことはできました。しかし、ついて消えるまでの時間は一瞬です。課題の中には「つける時間と消す時間はどちらも1秒間にする」という決まりが。そこでコンピュータにLEDがついてから「何もしないで、待つ」ように命令します。

 

何もしないで待ってもらう

 

LED1:WAIT 60:LED0

 

と入力することで、LEDがついて約1秒待ち、LEDが消えるようになりました。

 

待ってもらうよう入力していきます。

 

これで「LEDをつけて消す。つける時間と消す時間はどちらも1秒間にする」ができました。

しかし課題は「ずっとLEDを点滅させる。つける時間と消す時間はどちらも1秒間にする」です。

 

”ずっと点滅”させなければなりません。

 

LED1:WAIT 60:LED0:LED1:WAIT 60:LED0:LED1:WAIT 60:LED0……

 

と繰り返し入力すればできますが、これでは入力するのも大変です。そこで繰り返し命令するプログラミングをしていきます。

LEDが点滅するように繰り返し命令する

LEDが点滅するように繰り返し命令する

 

命令の前に「10、20、30…」と番号をつけていきます。

それぞれのプログラミングの命令内容は次のとおりです。

 

10 LED1

LEDをつける

 

20 WAIT 60

1秒待つ

 

30 LED0

LEDを消す

 

40 WAIT 60

1秒待つ

 

50 GOTO 10

10行目(LEDをつける)に戻る



少し難易度が上がりました。

 

少し難易度が上がったため、スタッフがフォローしながら入力していきます。

結果、全員が「ずっとLEDを点滅させる。つける時間と消す時間はどちらも1秒間にする」の課題をクリアできました。

 

LEDを使った課題は終了

 

これで、LEDを使った課題は終了です。

【2時間目】プログラミングでゲームづくり

休憩を挟んで、次におこなったのが「かわくだりゲームづくり」です。こちらもIchigoJamを使ってつくっていきます。

 

プログラミングでゲームづくり

 

(かわくだりゲームのデモ画面)

(かわくだりゲームのデモ画面)

 

まずはじめに、次のように入力していきます。

 

10 CLS:X=15

 

さらに入力していきます。

20 LC X,5:?”O”

RUN

 

自分のキャラが完成です。

 

これで自分のキャラ(O)が完成です。

 

真剣に取り組んでいます。

敵キャラを作成

 

30 LC RND(32),23:?”*”

 

で敵キャラ(*)があらわれます。

 

10 CLS:X=15

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

40 GOTO 20

RUN

 

ゲームっぽくなってきました



*が上に向かって高速で動く様子に、「おおー!」と教室から声があがりました。

しかしこれでは、*の動きが速すぎます。

 

35 WAIT 3 

 

LEDの課題のときにも利用した「WAIT」を入力して、少し動くのを待ってもらいます。

 

ボタン操作ができるようにプログラミング

続いて、ボタン操作ができるようにプログラミングをしていきます。

 

ボタン操作ができるようにプログラミング

36 X=X-BTN(LEFT)+BTN(RIGHT)

を加えることで、自分のキャラをキーボードの← →で操作できるようにします。止めるときは「ESCキー」を押します。



10 CLS:X=15

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

35 WAIT 3 

40 GOTO 20

36 X=X-BTN(LEFT)+BTN(RIGHT)

RUN

 

これで自分のキャラ操作ができるようになりました。少しずつゲームっぽくなってきています。

 

自分のキャラ操作ができるようになりました

当たり判定をつける

当たり判定をつける

 

続いて、「敵に当たったらゲームオーバー」となるようにプログラミングしていきます。

 

40 IF SCR(X,5)=0 GOTO 20

これを加えることで「*」が「O」に当たったらゲームオーバーと設定します。

 

10 CLS:X=15

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

35 WAIT 3 

36 X=X-BTN(LEFT)+BTN(RIGHT)

40 GOTO 20

40 IF SCR(X,5)=0 GOTO 20

RUN

 

これで自分のキャラが敵キャラに当たったら、スタート地点に戻るようになりました。

 

得点を出すようにプログラミング

得点を出す

 

次に得点を出すようにプログラミングします。得点を友だち同士で競えるようになります。これでゲームはほとんど完成です。

 

10 CLS:X=15

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

35 WAIT 3 

37 X=X-BTN(LEFT)+BTN(RIGHT)

40 IF SCR(X,5)=0 GOTO 20

15 CLT

50 ?TICK()

RUN

 

わからないことはスタッフがアドバイスします

バグ修正&完成

キーボードで自分のキャラを操作し、敵に当たるまで得点が加算されていくゲームができました。

 

しかし、ある生徒がゲームにバグがあることに気がつきました。

 

「これ、端にずっといれば敵に当たらないよ」

 

そうなんです。じつはこのままだと、端にいれば敵に当たらない「無敵状態」になってしまうバグがあります。その無敵状態バグを直すためのプログラミングをしていきます。



無敵にならないようにする



38 X=X&31

 

これを入力することで、無敵状態バグを直せます。

10 CLS:X=15

15 CLT

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

35 WAIT 3 

37 X=X-BTN(LEFT)+BTN(RIGHT)

40 IF SCR(X,5)=0 GOTO 20

50 ?TICK()

38 X=X&31

RUN

 

プログラミングにはバグはつきものです。バグを見つけ、それを修正することでプログラミングはより良いものになっていきます。これの繰り返しが必要です。

 

以上でかわくだりゲームが完成しました。

 

ゲーム完成



完成したゲームを遊び、友だちと点数を競います。

ゲームの基本形はこれで完成ですが、プログラミングによってさまざまなアレンジが可能です。

 

自分のキャラや敵キャラを変えたい場合



たとえば、自分のキャラや敵キャラを変えたい場合は

 

20 LC X,5:?”O”

30 LC RND(32),23:?”*”

 

の”O”と”*”の部分を変えます。そうすることで、自分だけのキャラを作成できます。

 

アレンジをして楽しんでくれました


それぞれのアレンジ

 

このように、それぞれがアレンジしてゲームを楽しんでいました

 

このように動きます

 

これで「かわくだりゲームをつくる」課題は終了です。全員が課題を達成できました。

授業の終わりに

授業の終わりに

 

「ずっとLEDを点滅させる。つける時間と消す時間はどちらも1秒間にする」

「かわくだりゲームをつくる」

といった課題が終わり、講師の尾村から学生のみなさんにメッセージを伝えました。

 

デジタルトランスフォーメーション(DX)時代の到来によって、これからITはあらゆる業種で”なくてなならない技術”になっていきます。今日、学んだことを頭の片隅においておくと役立つはずです」

 

これからの進路について考えている学生のみなさんは、真剣な眼差しで尾村の話を聞いていました。

 

学生のみなさんには、はじめてプログラミングに触れて自分でつくる楽しさを感じてもらえたと思います。この授業をきっかけに、ITやIT業界への興味を持ってもらえたらうれしいです。

 

授業後に撮影時のみマスクを外して撮影。KidsVenture運営メンバーと埼玉県立越谷特別支援学校教員の中井先生(右上)

授業後に撮影時のみマスクを外して撮影。KidsVenture運営メンバーと埼玉県立越谷特別支援学校教員の中井先生(右上)