ガイド · 読了まで19分

Arduinoの授業で個に応じた指導:3段階の課題、1つの授業

Arduinoの授業で個に応じた指導をする方法。10分間の事前診断、プロジェクトごとの基本・発展・上級の課題、グループ分け、公平なルーブリック、40分の授業の流れを紹介します。

Arduinoの授業で個に応じた指導をするといっても、3つの別々の授業を準備する必要はありません。クラス全員が同じプロジェクトを作り、そのプロジェクトを3つの段階に分けます。基本段階ではプロジェクトを動かして値を1つ変え、発展段階ではプロジェクトに新しい動作を加え、上級段階ではプログラムの構造そのものを変えます。どの生徒がどの段階から始めるかは、最初の授業で行う10分間の事前診断で決めます。グループも固定せず、授業の場面に合わせて変えます。こうすると、コードを見たことがない生徒は授業の終わりに動く信号機を手にし、ロボットを作ったことがある生徒は同じ信号機をdelay()を使わずに書き直すことに取り組み、しかも2人とも同じ回路について話し合えます。

この記事では、このテンプレートのすべての要素を紹介します。事前診断のための3つの質問と1つのミニ課題、得点を段階に変換する表、BlueGraysの無料プロジェクト4つ分の基本・発展・上級の課題、4つのグループ分けの方法がそれぞれどんなときに役立つか、早く終わる生徒向けの発展課題メニュー、支援が必要な生徒向けの足場かけ(スキャフォールディング)のリスト、全員をそれぞれの段階から評価する考え方、そして1分単位の40分の授業の流れです。例はすべて同じ前提に基づいています。生徒24人のクラス、Arduino Unoのキット12セット、ペア学習、40分の授業です。クラスの運営(キットの箱、ヘルプの順番待ち、片付け)は「大人数のクラスでArduinoを教える」の記事で、毎週のテーマの順番は「8週間のロボットプログラミング授業計画」で紹介しました。ここでは、同じ授業をさまざまなレベルに開く方法だけに絞ります。

Arduinoの授業で個に応じた指導とは何か、何ではないか

個に応じた指導とは、全員が同じ目標に、異なる道筋で、異なる深さまで到達することです。Arduinoの授業での目標は、たいてい1つの考え方です。デジタル出力、タイミング、条件分岐、アナログ入力などです。信号機の授業の目標が「命令の順番と時間がプログラムの動作を決める」という考え方なら、基本段階の生徒はdelay()の値を1つ変えることで、上級段階の生徒はmillis()でタイミングを組み直すことでそれを学びます。どちらも同じ考え方を学んだことになり、一方は表面で、もう一方は深いところで理解しています。個に応じた指導で変えられるのは3つです。課題そのもの(何をするか)、支援(どれだけ手助けがあるか)、成果物(学んだことをどう示すか)です。この記事のテンプレートは、この3つを組み合わせて使います。

次のようなものは個に応じた指導ではありません。早い生徒に同じ作業をもっと多く与えること(LEDを5個ではなく10個点灯させるのは深さではなく、時間がかかるだけの同じ課題です)、遅い生徒をもっと簡単なプロジェクトに回すこと(そうするとクラスで同じ話題を話せなくなります)、1年中、生徒を「できないグループ」「できるグループ」とラベル付けすることです。Arduinoではこのラベルは誤解も招きます。スキルは回路を組む、コードを読む、デバッグするという3つの別々の筋で伸びるからです。ロボットを作ったことがある生徒は目をつぶってでも回路を組めますが、コードを一度も読んだことがないかもしれません。回路を見たことはなくても学校でPythonの授業を受けた生徒は、誰よりも先にifブロックを理解するかもしれません。だからこそ段階は生徒ではなく課題に与えるものであり、生徒はどの授業でも1つ上の段階に進めます。

最初の授業で行う10分間の事前診断

事前診断は成績のためではなく、最初の週の課題を割り振るためのものです。生徒にも最初にそう伝えてください。個人で紙に書いて行うので、ペアで作業する生徒が互いの陰に隠れることを防げます。全体で10分かかり、授業後に24枚の用紙を採点するのにおよそ10分かかります。各項目は0、1、2点で、合計8点満点で評価します。

  1. 概念の質問(2分):「ArduinoにLEDをつなぐとき、なぜ間に抵抗を入れるのですか?」電流を制限するためと答えた生徒は2点、「LEDが壊れないように」のような半分の答えは1点、空欄は0点です。
  2. コード読解の質問(2分):黒板に4行を書きます:digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); 質問:「このコードは何をしますか?delay(1000)の代わりにdelay(200)と書くと何が変わりますか?」両方を正しく説明できれば2点、片方だけなら1点です。
  3. 経験の申告(1分):「これまでに何を作ったことがありますか?」何もなければ0点、ブロックプログラミングやキットの手順どおりのプロジェクトなら1点、自分でコードを書いたり変えたりしたプロジェクトなら2点です。
  4. ミニ課題(4分):2つの間違いがあるLED回路の図を印刷して配ります。LEDが逆向きで、抵抗が抜けています。生徒は間違いを丸で囲み、直し方を書きます。両方見つければ2点、1つなら1点です。
  5. 回収(1分):用紙を回収します。次の授業まで誰にも得点を伝えないでください。段階は最初の授業で、段階カードを使って目立たないように配ります。
合計点よくある様子開始する段階最初の週の重点
0〜3抵抗の質問が空欄、コードを1行ずつ読めない、プロジェクトを作ったことがない基本段階組み立て済みの回路、ブロックで表示をオン、値を1つ変えて結果を観察する
4〜6抵抗が電流を制限することを知っている、delayの変化を予想できる、間違いを1つ見つける発展段階回路図を見て自分で回路を組み、プロジェクトにボタンかLEDを追加する
7〜8両方の間違いを見つけ、コードを説明でき、以前に自分でコードを書いたことがある上級段階プログラムの構造を変える(millis()、配列、関数)、必要に応じてメンター役
矛盾がある(例:申告が2点、ほかが0点)「ロボットを作った」と言うが、回路とコードの質問で苦戦している。おそらく市販のキットを説明書どおりに組み立てた発展段階最初の授業でよく観察し、2回の授業のうちに段階を修正する

紙での診断は、BlueGraysの2つの機能で補えます。1つ目は今日のクイズにあるレベル判定テストです。この15問のテストは、生徒を6つのレベルのどれかに振り分けます(A1はじめの光、A2回路の作り手、B1センサーの探究者、B2プロジェクト開発者、C1システム設計者、C2工房の達人)。大まかな対応として、A1〜A2を基本段階、B1〜B2を発展段階、C1〜C2を上級段階とみなせます。2つ目はプロジェクトさがしの3つ目の質問どのくらい経験がありますか?です。3つの選択肢(初めて作ります、いくつか作ったことがあります、自信があるので挑戦したいです)はほぼそのまま3つの段階に対応し、生徒が自分をどう見ているかがわかります。どちらも最初の授業の前に宿題として出せます。その結果と紙の得点の差から、誰をよく観察すべきかがわかります。レベル判定テストの問題とレベルの仕組みは「今日のクイズ」の記事で詳しく説明しました。

アプリにはクラス管理画面がありません。生徒のレベル判定テストの結果やプロジェクトさがしの回答を、離れた場所から一覧で見ることはできません。結果は生徒が自分のスマホで見せるか、紙に書いて伝えます。テストとしてではなく出発点として示してください。レベル判定テストの結果を成績に含めないでください。含めると、生徒が自分を実際より低く、または高く見せるためにテストを使うようになります。

同じプロジェクト、3つの段階:無料プロジェクト4つで作るテンプレート

テンプレートのルールはシンプルです。基本段階はプロジェクトを動かし、値を1つ変えて結果を観察します。たいていの場合、これはプロジェクトのコードを理解タブにある自分で試すの課題です。発展段階はプロジェクトに新しい動作を加えます。ボタン、LED、条件、シリアルモニタへの出力などです。上級段階はプログラムの構造を変えます。delay()の代わりにmillis()を使う、繰り返しの行の代わりに配列とループを使う、2つのしきい値の間で状態を保持する、といったことです。下の4つのプロジェクトは、回路図、コード、ブロック、「コードを理解」まで、BlueGraysで完全に無料です。クラスのどの生徒もプレミアムは必要ありません。

プロジェクト基本段階発展段階上級段階
信号機(LEDはD2、D3、D4)「自分で試す」:緑の後の黄色を0.3秒から1.5秒に延ばし(最後のdelay(300)の行がdelay(1500)になる)、次に赤を5秒にする歩行者用ボタンを追加:ボタンをD7とGNDの間につなぎ、pinMode(7, INPUT_PULLUP)を使う。ボタンが押されていたら、赤を2秒から6秒にする同じ信号機を、処理を止めないようにmillis()で書き直す。ボタンを常に読み取り、どの段階でも押されたことを見逃さない
ボタンでLEDの点灯・消灯を切り替え(ボタンD13、LED D7)「自分で試す」:ボタンを押したときではなく、離したときにLEDが切り替わるようにする(if (button == 1)の行がif (button == 0)になる)2個目のLED(D8、330 Ω)を追加。押すたびに、1個目だけ、2個目だけ、両方、どちらも消灯、の順に切り替える(0〜3のカウンター)delay(50)の代わりにmillis()でチャタリング対策を書く。1秒より長い押し方を別に検出し、両方のLEDを消す
LDRで作る常夜灯(LDRはA0、LEDはD13)「自分で試す」:しきい値を50から300に上げ、LDRを手でゆっくり覆って、LEDがいつ点灯するかを観察する読み取り値をSerial.println()で表示する。教室の明るいときと暗いときの値を測り、その測定に基づいてしきい値を選ぶ(LDRで光の強さを測定が参考になる)しきい値が2つの(ヒステリシスのある)バージョンを書く:250未満で点灯、350を超えたら消灯。その間の値でLEDがちらつかなくなる
ブザーの使い方(ブザーはD7)「自分で試す」:周波数を400 Hzから1000 Hzに上げて違いを聞く(パッシブブザーが必要)2音のサイレンを作る:600 Hzと900 Hzを交互に、それぞれ400 ms鳴らす。次に時間を調整して緊急車両のサイレンに近づける音符と長さを2つの配列に入れ、forループで8音の短いメロディーを演奏する。メロディーを1つの関数にまとめる

この表は段階カードとして使ってください。各プロジェクトの3枚のカードをA5の紙に印刷し、各ペアには自分の段階のカードを渡しますが、ほかの2枚も机の中央に置いておきます。基本カードを終えたペアは、自由に発展カードを手に取れます。上級カードで苦戦しているペアも、自由に発展カードに戻れます。それは失敗とはみなしません。発展段階の歩行者用ボタンの課題の回路とコードの詳細は「Arduinoで信号機」の記事を、上級段階の土台となる処理を止めないタイミングは「millis()とdelay()の違い」の記事を参照してください。すべての段階は同じ基本回路の上に作られます。そのためクラスでは1つの回路図について話し合え、上級段階の生徒は基本段階の友だちに「ほら、きみが変えたdelay()の行が、こっちにはないんだよ」と言えます。

追加の材料1ペアあたりクラス合計(12ペア+予備)どの段階、どのプロジェクト?
押しボタン114発展段階と上級段階、信号機
LED+330 Ωの抵抗1 + 114 + 14発展段階と上級段階、ボタンでLEDの点灯・消灯を切り替え
パッシブブザー113全段階、ブザーの使い方(アクティブブザーでは周波数が変わらない)
段階カード(A5)3枚 × 4プロジェクト1プロジェクトあたり36枚すべて
ステップカード(A5)1組5〜6組基本段階
途中まで組み立て済みの回路―ブレッドボード2〜3枚基本段階、つまずいたペア
発展段階のために追加した330 Ωの抵抗が10 kΩの抵抗と混ざらないように、抵抗は別々の箱に入れ、生徒には「カラーコード」ツールで帯を確認してもらいましょう。この確認を基本段階のペアに小さな課題として任せると、彼らも回路についての話し合いに加わるようになります。

グループ分けの方法:どれを、いつ使う?

さまざまなレベルの生徒がいるクラスでは、1つのグループ分けの方法だけでは授業全体をまかなえません。柔軟なグループ分けでは、授業の場面に合わせてグループを変えます。新しい概念を紹介するときは混合グループで互いに説明し合い、段階別の課題では同じくらいのレベルのペアが自分のペースで進み、授業の最後にはエキスパートが教室を回ります。下の表は、4つの方法がどこで役立ち、どこで逆効果になるかをまとめたものです。

方法組み方役立つ場面注意点
同質(同じ段階)同じ段階の生徒2人が1つのキットを使う段階別の課題で、全員が自分のペースで進む必要があるとき長く同じままだとラベルになる。2〜3回の授業ごとに見直す
異質(混合)基本段階の生徒と、上級または発展段階の生徒を隣にするプロジェクトの紹介、回路の組み立て、ブロックを一緒に読むとき上級の生徒が全部やってしまうことがある。キーボードと配線には経験の少ないほうが触る
エキスパート席上級段階の生徒2〜3人が1つの机に座り、つまずいたペアがそこへ質問を持っていく段階別の課題の後半で、先生のヘルプの順番待ちが長くなったときエキスパートは説明するだけで、配線やキーボードには触らない。自分の作業も進むように役割を交代制にする
ペアプログラミング1人がドライバー(キーボードと配線)、もう1人がナビゲーター(回路図とコードを読む)。10分ごとに役割を交代するコードを書く課題やデバッグの課題で、特に発展段階と上級段階ナビゲーターは言うだけで、画面を取り上げない。役割の交代は先生が時間を見て知らせる

ペアプログラミングはArduinoの授業にとてもよく合います。作業に2つの手があるからです。1人が回路とArduino IDEを扱っている間、もう1人はスマホでプロジェクトの回路図とコードを開いておきます。ナビゲーターは「赤いLEDの長い足はD2の列に」「loopの最後のdelayを見て」と道案内し、ドライバーがそれを実行します。10分ごとに役割を交代すれば、混合ペアの基本段階の生徒がキーボードに一度も触らずに授業を終えることを防げます。グループは最初の事前診断の後に組みますが、生徒がどの色のカードを手に取っているかを見ながら、2〜3回の授業ごとに組み直してください。1つ上のカードに進んだペアは、次の授業で新しい相手と始められます。

混合グループでいちばんよくある問題は、経験のある生徒が「自分がやるよ、そのほうが早いから」と作業を全部引き受けてしまうことです。授業の終わりに回路は動いていても、基本段階の生徒は何もしていません。簡単なルールを決めましょう。配線とキーボードはいつもペアのうち経験の少ないほうが担当し、もう1人は話すだけにします。教室を回りながらこのルールが守られているかを確認することは、誰が何を学んだかを知るいちばん早い方法でもあります。

早く終わる生徒のための発展課題メニュー

早く終わった生徒に「友だちを手伝ってあげて」と言うのは簡単ですが、それだけでは発展課題になりません。その生徒も、その授業で何か新しいことを学ぶべきです。発展課題メニューがあれば、生徒は終わった瞬間に何をすればいいかがわかり、先生のところへ来る必要がありません。メニューは黒板の隅か、上級段階のカードの裏に書いておきましょう。

  • ヒントなしで「自分で試す」:各プロジェクトのコードを理解タブの最後にある自分で試すの課題を、ヒントと解答を表示のボタンに触らずに解き、自分の解答をアプリの解答と比べます。その後、同じプロジェクトで友だちのための新しい課題を書きます。課題の仕組みは「「コードを理解」のガイド」の記事で説明しました。
  • コードガイドのカード:コードガイドのmillis()、配列、tone()などのカードは、上級段階の課題の土台になります。各カードの最後にはミニテストとプロジェクトで確認の欄があり、生徒はその命令を、やさしい順に並んだほかのプロジェクトでも確認できます。ガイドの構成は「コードガイドの記事」にあります。
  • プレミアムのプロジェクトへ:無料のプロジェクトを終えた生徒の次のステップは、センサー、ディスプレイ、モーターを使うプレミアムのプロジェクトです。そのために生徒が自分のカードやサブスクリプションを持つ必要はありません。下で説明する教育者向けコードを1つ使えば十分です。
  • 自分のプロジェクトを設計する:2つの無料プロジェクトを組み合わせたプロジェクトを設計させます。たとえば信号機とLDRで作る常夜灯を組み合わせると、夜になると黄色が点滅する信号機ができます。生徒はまず紙に目的、部品リスト、ピン表、テスト計画を書き、それから組み立てます。生徒は完成したプロジェクトを、写真とコードを付けて学ぶ > フォーラム > 新しい投稿からチュートリアルのトピックとしてシェアできます。トピックは誰でも見られる公開のもので、クラス専用にはなりません。
  • メンター役:エキスパート席に座ることはご褒美ではなく、役割です。メンターは質問と説明をするだけで、配線には触りません。ある授業はメンター役で、次の授業は自分の上級課題で過ごすようにすると、早い生徒は説明することと実際に作ることの両方で成長できます。
  • 昇級の目標:今日のクイズでは、生徒の進捗率が100%に達し、そのレベルで十分な数の問題を解くと、昇級試験のロックが解除されます。10問中9問正解すると1つ上のレベルに進みます。学期の初めに「レベルを1つ上げる」という目標を立てると、授業の外でも続く発展課題になります。

数人の早い生徒にプレミアムのプロジェクトを開放するために、クラス全員分のコードを買う必要はありません。プロフィールの教育者向けパッケージ画面には、5個、10個、50個のパックがあり、それぞれ月額と年額を選べます。支払いは1回限りで、自動更新されません。生徒はAppleやGoogleのアカウントにカードを登録せずに、コードを利用画面でコードを入力してプレミアムになります。未使用のコードに有効期限はなく、マイコード画面で誰がどのコードを使ったかを確認できます。年額パッケージのコードは1つにつき6回、月額パッケージのコードは1回の移行権があります。学期の途中で必要な生徒が変わったら、使用済みのコードを取り消し、残りの期間で新しいコードを作れます。10個パックは5個パックより、生徒1人あたりの費用が約20%安くなります。お住まいの国の最新の価格は同じ画面で確認できます。1つだけ、生徒に最初に伝えておいてください。コードを利用した生徒の名前、ユーザー名、メールアドレス、プロフィール写真は、コードを渡した教育者と共有されます。パッケージの詳細は「授業向けのまとめ買いプレミアムコード」の記事で説明しました。

支援が必要な生徒:目標ではなく負担を減らす

支援が必要な生徒のための目的は、もっと簡単なプロジェクトを与えることではありません。同じプロジェクトで同じ考え方にたどり着くまでの道のりから、不要な負担を取り除くことです。回路を見たことがない生徒が、最初の授業でブレッドボードの内部の接続、LEDの向き、Arduino IDEでのポートの選び方、そしてコードを一度に学ぼうとすると、授業が終わったときには何ひとつ身についていません。足場かけとは、こうした負担のいくつかを先生が一時的に引き受けることです。生徒が進むにつれて、足場を1つずつ外していきます。

  • 組み立て済みの回路:基本段階のペアには、回路を組み立てた状態で渡すか、ブレッドボードの部分だけができている途中までの回路を渡します。そうすれば最初の15分が配線で終わらず、生徒の力は「どの行が何を変えるのか?」という問いに向かいます。2回目の授業では回路の半分を、3回目では全部を自分で組みます。
  • 「ブロックで表示」と「ブロック解説」:プロジェクトページのブロックで表示のスイッチを入れると、同じプログラムがブロックで表示されます。オンの間はコードを理解タブがブロック解説に変わり、プログラムをブロックごとに、ステップごとに説明します。ブロックは読むためのもので、ボードに書き込むのはあくまでプロジェクトの実際のコードですが、「もし value < 50」のブロックを読んだ生徒は、コードの中のif (value < 50)の行を難なく見つけられます。
  • ステップカード:回路と課題を5〜6枚のカードに分け、1枚に1つのステップを書きます。「赤いLEDの長い足をD2の列に挿す」「330 Ωの抵抗をLEDの短い足とGNDの列の間に入れる」などです。生徒は終わったらカードを裏返します。カードは進み具合を目に見えるようにし、「次は何をすればいいの?」という質問を減らします。
  • 「一緒に作りましょう」モード:アプリの一緒に作りましょうモードは、プロジェクトを4つのステップに分けます。部品を準備、回路を組む、コードを書き込む、動作させてテストです。このモードでは画面が点灯したままになり、生徒は中断したステップから続けられます。スマホを机に置いておく基本段階のペアにとっては、既製のステップカードのように使えます。モードの詳細は「スマホで初めてのArduinoプロジェクトを作る」の記事にあります。
  • 短い目標:40分を3つの小さな目標に分けて黒板に書きます。「1.LEDが順番に点灯する」「2.黄色の時間を変えた」「3.自分の変更を1文で説明した」。目標ごとに印をつけた生徒は、授業の終わりに自分が何を達成したかがわかります。
  • 「困ったときは」の欄:コードを理解タブの困ったときはの欄には、よくある症状とその解決方法が載っています。基本段階の生徒に、まずそこを見て、次に友だちに聞き、最後に先生のところへ来るように教えることが、自分で問題を解決するための第一歩です。
「LDRで作る常夜灯」プロジェクトのブロック:A0のアナログ読み取り値を変数valueに代入、「もし value < 50」の比較、ピン13にHIGHまたはLOWを書き込む「もし/そうでなければ」ブロック
基本段階向けの「ブロックで表示」:生徒はブロックの中でしきい値を見つけ、コードの同じ数字を変え、LDRを覆って結果を確かめます。

基本段階のペアにとって、うまくいった授業は次のようなものです。LDRで作る常夜灯のプロジェクトでは回路が組み立て済みで用意され、生徒はブロックを読んで「値が50より小さければLEDが点灯する」と自分の言葉で言い、しきい値を300にして書き込み、LDRを手で覆ってLEDが前より早く点灯することを確かめ、まとめの質問に「しきい値を大きくするほど、少ない暗さでLEDが点灯する」と書きます。これは上級段階のヒステリシスの課題よりずっと少ないコードですが、同じ考え方、つまりプログラムが測定値を数と比べて判断するということにたどり着いています。次のLDRの授業では、同じペアがシリアルモニタで値を読み、自分でしきい値を選べます。こうして自然に発展段階へ進みます。

公平な評価:全員をそれぞれの段階から評価する

個に応じた授業で全員を同じ基準で採点するのは、2つの点で不公平です。基本段階の生徒はmillis()を書くことがないので低い点になり、上級段階の生徒は少しも苦労せずに最高点を取ります。解決策は、評価を2つに分けることです。1つ目は、どの段階でも同じ過程の観点です。予想してテストする、自分のしたことを説明する、間違いを見つける、です。2つ目は、生徒が自分の段階の目標に到達したかどうかと、最初の事前診断からどれだけ伸びたかです。下の表は、同じ観点が各段階で「目標に到達」の水準ではどう見えるかを示しています。詳しい観点、提出シート、ポートフォリオについては「Arduinoプロジェクト評価のルーブリック」の記事を参照してください。

観点基本段階:目標に到達発展段階:目標に到達上級段階:目標に到達
回路組み立て済みまたは途中までの回路を回路図と比べ、正しいかどうかを言える追加したボタンやLEDを、回路図を見て正しいピンにつなぐ新しい部品のピンを自分で選び、ピン表を書く
コードの変更値を1つ変えて書き込む新しい条件や出力を追加し、コンパイルエラーを自分で直すプログラムの構造を変える(millis()、配列、関数)
予想とテスト変更する前に結果を予想して書く複数の場合を試す(例:異なるタイミングでボタンを押す)プログラムの境界となる場合を探し、テスト計画を書く
説明変更した行が何をするかを1文で言える追加した部分がどう動くかを友だちに説明するなぜこの構造を選んだのか、delay()のバージョンとどう違うのかを説明する
デバッグ「困ったときは」の欄を見て問題を1つ解決するシリアルモニタやLEDで間違いの場所を見つける代わりに直してしまわずに、ほかのペアが間違いを見つけるのを手伝う

成績のつけ方の例です。100点のうち40点をどの段階でも同じ過程の観点(予想、説明、デバッグ)に、40点を生徒自身の段階の目標に、20点を伸びに割り当てます。伸びの点数では、生徒が学期中に1つ上の段階へ進んだかどうかと、事前診断で弱かった筋(回路、コードの読解、デバッグ)をどれだけ伸ばしたかを見ます。たとえば、事前診断で2点だった生徒が学期の半ばに発展段階のカードを手に取り始めたとします。その生徒は伸びで満点を取ります。一方、事前診断で8点を取り、学期中ずっと苦労せずに上級段階の課題を終えた生徒は、新しいことに挑戦したとき、たとえばメンター役や自分のプロジェクトの設計に取り組んだときにだけ伸びの点数を得られます。学期末には全員が、すべてのプロジェクトの基本段階を自力でできることを共通の土台にしてください。そうすれば、段階が成績の上限にも下限にもなりません。

40分の個に応じた授業の流れ:信号機

下の流れは信号機のプロジェクトを使い、事前診断の後の最初の授業のために作ったものです。事前診断の結果、12ペアのうち5ペアが基本、4ペアが発展、3ペアが上級のカードを受け取ったとします。プロジェクトを読む間は、2つのペアが1つの机に混合で座り(基本のペア1組と、発展または上級のペア1組)、組み立てと段階別の課題では各ペアが自分のキットに戻ります。授業の始まりと終わりは全員共通で、中盤が3つの段階に分かれます。

分全員基本段階発展段階上級段階
0〜4ウォームアップの質問:交差点の黄色の信号は、なぜあんなに短いのでしょう?段階カードを封筒で配る―――
4〜10プロジェクトをプロジェクターに映し、ブロックで表示をオン。2つのペアが1つの机に混合で座り、ブロックとピン表(D2 赤、D3 黄、D4 緑)を一緒に読む―――
10〜20各ペアが自分のキットで回路を組む。配線はペアのうち経験の少ないほうが担当する組み立て済みの回路を回路図と比べ、コードを書き込む回路図を見て回路を組み、コードを書き込む回路図を見ずに回路を組み、コードを書き込んでから回路図で確認する
20〜32段階別の課題(ペアプログラミング、26分目に役割を交代)「自分で試す」:黄1.5秒、次に赤5秒。変更の前に毎回予想を書く歩行者用ボタンをD7に、INPUT_PULLUP。押されたら赤6秒millis()を使った処理を止めないバージョン。28分目からエキスパート席
32〜36共有:各段階から1ペアが、何を変えたかを1分で見せる予想と結果を比べる黄色のときにボタンを押すとどうなるかを見せるdelay()とmillis()のバージョンでボタンの反応がどう違うかを見せる
36〜40まとめの質問と片付け自分の段階のまとめの質問自分の段階のまとめの質問自分の段階のまとめの質問

まとめの質問はどれも1文での答えを求め、次の授業の段階の割り振りを決めます。基本:「delay(2000)の行をdelay(5000)に変えると、どの信号が何秒点灯しますか?」発展:「ちょうど黄色が点灯しているときにボタンを押すと、プログラムはどうなりますか?それはなぜですか?」上級:「delay()を使ったバージョンでは、なぜボタンを押しても反応しないことがあるのですか?」正しく答えた基本段階の生徒は、次の授業で発展カードに挑戦するよう誘います。上級の答えがあいまいなら、その生徒はもう1回の授業、上級カードにとどまります。

  • 事前診断の用紙を採点し、各生徒の開始段階を記録済み。
  • プロジェクトの3枚の段階カードを印刷し、各机の中央に置けるだけの枚数を用意済み。
  • 基本段階のための組み立て済みまたは途中までの回路と、ステップカードを用意済み。
  • 発展段階と上級段階のための追加の材料(ボタン、LED、330 Ω、パッシブブザー)をペアごとに取り分け済み。
  • 読む場面のための混合の机の組み合わせを書き出し、エキスパート席の上級の生徒2〜3人を決定済み。
  • 発展課題メニューを黒板の隅に、短い目標を黒板に書き済み。
  • 3つの段階のまとめの質問を別々の紙に用意済み。次の授業の段階の割り振りは、この紙をもとに更新する。

さまざまなレベルの生徒がいるクラスは、うまく組み立てれば問題ではなく資源になります。上級段階の生徒は説明することで理解を深め、基本段階の生徒は同じプロジェクトについて話すことでクラスの一員であり続けます。次の授業を計画するときは、表の4つのプロジェクトのどれかから始めてみてください。どれもBlueGraysアプリで回路図、コード、ブロック、「コードを理解」の欄が無料で使え、段階カードはそこにある「自分で試す」の課題からそのまま作れます。

よくある質問

Arduinoの授業で個に応じた指導をするにはどうすればいいですか?

クラス全員が同じプロジェクトを作り、課題を3つの段階に分けます。基本段階では値を1つ変え、発展段階では新しい動作を加え、上級段階ではプログラムの構造を変えます。各生徒がどの段階から始めるかは短い事前診断で決め、段階は授業ごとに見直します。

さまざまなレベルの生徒がいるArduinoのクラスでは、どうグループ分けすればいいですか?

1つの方法ではなく、柔軟なグループ分けを使います。紹介と回路の組み立てでは混合のペア、段階別の課題では同じレベルのペア、授業の最後にはエキスパート席を使います。コードを書く課題では、10分ごとに役割を交代するペアプログラミングがうまくいきます。

Arduinoの授業で早く終わった生徒には何をさせればいいですか?

同じ作業を増やすのではなく、より深い作業を与えます。ヒントなしで「自分で試す」の課題を解く、millis()や配列でプログラムを書き直す、2つのプロジェクトを組み合わせた自分のプロジェクトを設計する、エキスパート席でメンター役をする、などです。プレミアムのプロジェクトに進むために、生徒に教育者向けコードを渡すこともできます。

コードの経験がない生徒は、どうやってArduinoの授業に参加すればいいですか?

組み立て済みの回路を渡し、ブロックを読ませて、値を1つだけ変えてもらいます。「ブロックで表示」と「ブロック解説」は同じプログラムをステップごとに説明し、「一緒に作りましょう」モードはプロジェクトを4つのステップに分けます。2回目と3回目の授業で足場を減らし、自分で回路を組めるようにします。

Arduinoの単元の前に、どうやって事前診断をすればいいですか?

最初の授業で10分間、紙で確認すれば十分です。概念の質問、コード読解の質問、経験の申告、間違いのある回路図から間違いを見つける課題です。各項目は0〜2点で、0〜3点は基本段階、4〜6点は発展段階、7〜8点は上級段階から始めます。BlueGraysの15問のレベル判定テストも補助として使えます。

個に応じたArduinoの授業で、公平に成績をつけるにはどうすればいいですか?

成績を2つに分けます。どの段階でも同じ過程の観点(予想、説明、デバッグ)と、生徒自身の段階での目標と伸びです。たとえば、過程に40点、段階の目標に40点、伸びに20点です。こうすれば基本段階の生徒が不利にならず、上級段階の生徒が努力せずに満点を取ることもありません。

全プロジェクトを見る
信号機
#3初級

信号機

毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

4.8(131)
395
ボタンでLEDの点灯・消灯を切り替え
#10初級

ボタンでLEDの点灯・消灯を切り替え

部屋の照明スイッチのように、ボタンを1回押すと点灯し、もう1回押すと消灯します。Arduinoはボタンが押されるたびにLEDの状態を反転させます。ボタン内部の小さな接点の振動で誤動作しないよう、短い待ち時間も設けます。1つのボタンでオン・オフを切り替える、シンプルな仕組みです。

4.8(100)
167
LDRで作る常夜灯
#12初級

LDRで作る常夜灯

暗くなると自動で点灯し、朝になると消灯する小さな常夜灯です。光センサーが部屋の明るさを測定し、Arduinoが十分に暗くなったらLEDを点灯させ、明るくなったら消灯させます。街灯が夕方になると自動で点灯する仕組みも理解できます。

4.8(102)
204
ブザーの使い方
#13初級

ブザーの使い方

呼び鈴やアラームがどうやって音を出すのか、気になったことはありませんか?Arduinoが小さなブザーを短い間隔で鳴らし、音を出す、止める、を繰り返します。電気で音が生まれる仕組みを学び、メロディーを演奏するプロジェクトへの第一歩を踏み出せます。

4.7(89)
161
LDRで光の強さを測定
#11初級

LDRで光の強さを測定

部屋の明るさを数値で見てみませんか?光に反応する小さな部品、LDRで周囲の光を測定し、Arduinoが0.5秒ごとにその値をコンピューターの画面に表示します。手で覆うと数値が変わる様子を確認できます。自動で点灯する常夜灯などのプロジェクトへの第一歩です。

4.6(81)
138
ボタンでLEDを点灯(押している間のみ)
#9初級

ボタンでLEDを点灯(押している間のみ)

呼び鈴のように、押している間は点灯し、離すと消灯します。Arduinoはボタンの状態を常に読み取り、押されている間はLEDを点灯させ、指を離した瞬間に消灯させます。このシンプルな回路で、ボードが外部からの操作を検知する仕組みを学べます。

4.8(113)
229
流れるLED
#5中級

流れるLED

LEDが次々に点灯し、光が走るように進みます。Arduinoが6個のLEDを1個ずつ短く点灯して消灯させることで、光が端から端へと移動し、また最初に戻ります。この簡単なプロジェクトで、1つのパターンで複数の光を制御する方法を学びます。

4.6(85)
207
HC-SR04で距離を測定(シリアルモニタ表示)
#27初級

HC-SR04で距離を測定(シリアルモニタ表示)

HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。

4.6(46)
71