node.js+ScratchX+Digisparkでプログラミング教室をやった
始めに
過去にも似たタイトルの記事を書いています。 過去記事はこの教室で使うプログラムの開発記事になっていました。 今回の記事が一連の開発の締めということになります。
プログラミング教室に向けての準備物(プログラム)
uitspitss/electron_scratchX-digispark
この自作プログラムが ScratchX と Digispark をつなげていて、 ScratchX で組むプログラムの中に、 Digispark の動作を 組み込むことができるようになっています。
ScratchX 上での実際のプログラムは以下のような感じです。 一番下の紫色の「白(白)で点灯」のブロックが自作ブロック。
対象
- 小学生〜高校生 → 小学1年生〜中学2年生の8名が参加
- プログラミングの経験は問わず → Scratchを触ったことがある子、初めて触る子といました。
- ちなみに男女の内訳は、男5、女3
教室のおおまかな流れ
- Scratchの使い方等の説明
- プログラミング、プログラムの説明
- プログラムを作成(ハンズオン)
- フルカラーLEDで色の再現1(ハンズオン)
- 光の三原色
- カラーピッカーの紹介
- フルカラーLEDで色の再現2(ハンズオン)
- ループ処理
- 変数
- 条件分岐処理
- 自由にプログラムを作成(ハンズオン)
- Digisparkにプログラムを書き込み(私がArduino言語に書き換えて書き込み)
スライド
プログラムの説明のところは、真面目な人が見ると「?」と思うところがあるかもしれません…。 最後の方の太陽系の図は、今回の教室とは関係がないのですが、 学術的な方でもプログラミングを使うよ、という話をするために入れました。
プログラミング教室の様子
こんな環境でやりました。 ※プログラミングとは関係ないですが、Wi-Fi環境を用意しましょう!
以下、2つの画像は受講者が組んだプログラムです。
これは中学2年生が組んだプログラムです。 条件分岐処理が細かく使われています。
こちらは忘れてしまいましたが、小学校高学年か中学生くらいだったような気がします。 無限ループに入れるのは、Digisparkへ書き込むためにこちらが指示したものですが、 条件分岐処理とループ処理をうまく組み合わせられていると思います。
所感
今回の教室の目的は以下の3つでした。
- プログラミングの学習を家庭でも継続してもらうためのオンライン開発環境「Scratch(ScratchX)」
- プログラミングでよく使われる処理をどれくらい理解できるのか(変数、条件分岐処理、ループ処理)
- 科学のテイストを入れるための「光の三原色」
1については、こちらが準備する形でScratchXを使える環境に持っていくことができましたが、 最終的には、このLEDプログラミングを家庭でできるように、手軽に開発環境を作れることが目標だったので、 その点は至らずな結果になってしまいました。 一応は作ることができますが、手順が少し煩雑になってしまっているのと、環境に依存することがあるようです。
2については、たった2時間の講座だったので、そこまでできないだろうと思っていましたが、 子供たちの飲み込みが早くて、ほとんどクリアできました。 具体的には、小学校中学年くらいで変数、条件分岐処理、ループ処理が使えるくらい、 中学生になると、条件分岐処理やループ処理が入れ子になっているプログラムが書けていました。
3については、科学のテイストを入れるためにフルカラーLEDを選んだところもありました。 ロボットプログラミングが広くやられているところで、子供たちの興味を引くことができるか、 不安なところでしたが、ほとんどの子供たちは自ら進んでプログラムを組んでくれていました。 カラーピッカーを使うというところは、教室の1週間くらい前に入れることを決めたのですが、 これを入れたことで、参加者が最終的なプログラム制作するところで満足いくものにすることができたのかなと思います。 特に、女の子には色作りがハマったようで、最終的なプログラムはどれもRGB値が細かい数値で書かれていました。
他にも運営的にはどうだろうか、とか細かなところもありましたが割愛です。 この記事が誰かのお役に立てれば幸いです。