中学校での授業案(45 分 × 2 回)
ブロックで作った作戦を、そのまま Python として読みます。 そして「変えたら強くなったのか」を、勝率という数字で確かめます。 「動いた」で終わらず、「言える」ところまで進む授業です。
この授業でできるようになること:
自分の作戦を、ブロックと Python の 2 つで読んで対応づける。
1 か所だけ変えて、前と後の勝率を比べ、「言えること」を 1 文で言う。
ねらいと、位置づけ
- 技術・家庭科(技術分野)の「情報の技術」でのプログラミングの学習、数学の「データの活用」と関連づけて使えます。教科との対応は、学校の年間計画に合わせて先生が判断してください。
- ブロックから Python への橋渡しが中心です。「書き直し」ではなく「読みかえ」なので、小学校で作ったものも生かせます。
- もう 1 つの柱は、条件をそろえて比べることです。変えるのは 1 か所だけ。そうしないと、何が効いたのか分かりません。
準備
- はじめの質問で、「🧩 ブロックでならある」を選びます(かんたんブロックの部品が、はじめから全部出ます)。ブロックの経験がない生徒は「🔰 はじめて」でもかまいません。
- 先生は事前に、2-4 はじめての撃ち合いを 1 回やっておきます(10 分ほど)。
- ガレージ右の「🔁 れんせん(勝率チェック)」で、同じ相手と何度も戦えることを確認しておきます。
第 1 回「ブロックを Python で読む」の 45 分
| 時間 | 場面 | 内容 |
|---|---|---|
| 0–5 分 | 予想 | 課題を出します:「CPU『キャンパー』に、自分の作戦は 10 回中何回勝てるか」。 まだ何も作らず、予想をノートに書かせます。 |
| 5–17 分 | 組む | ぼうけんの 2-4 はじめての撃ち合い(キャンパーに勝つ。命中率 50% 以上)に、かんたんブロックで挑みます。 「敵が見える」「ねらいが合っている」「いま撃てる」を組み合わせるのがコツです。 |
| 17–30 分 | 読みかえる |
ガレージで 「⬆ ステップアップ」を押し、ブロックと Python を並べて見られる
「🔀 スプリット」にします。
ブロック 1 枚が Python の何行に当たるかを、ワークシート(ノートに表を書く)で対応づけます。
ぼうけんの作戦は、行動を drive・steer・fire・barrier の 4 つの変数で決め、最後にまとめて返す形の Python になります。
「もし」は if、「そうでなければ」は else であることを確かめます。
|
| 30–40 分 | れんせん 1 回目 | ガレージ右の「🔁 れんせん」で、あいてを「CPU: キャンパー」、30 戦にして開始します。 出た勝率と、95% 信頼区間(本当の勝率がたぶんこの幅のどこかにある、という範囲)を記録します。予想と比べます。 |
| 40–45 分 | まとめ | 「予想とくらべて、どうだった?」を隣と 1 分。次回は1 か所だけ変えて、もう一度測ることを予告します。 |
第 2 回「1 か所だけ変えて、確かめる」の 45 分
| 時間 | 場面 | 内容 |
|---|---|---|
| 0–5 分 | 仮説 | 前回の勝率を見直し、「〜を変えれば、勝率が上がるはず」という仮説を 1 文で書きます。 |
| 5–18 分 | 試合を読む | テスト対戦を 1 回して、「📊 バトル分析」を開きます。 被弾ヒートマップや射撃距離の散布図を見て、画面の問い(例:「どの距離なら当たっている?」)に答えます。 勝った試合でも開けます。仮説の欄に、気づいたことを書きます。 |
| 18–35 分 | 1 か所だけ変える | 仮説にしたがって、Python の 1 か所だけを書き換えます(例:撃ち始める距離のしきい値)。 もう一度「🔁 れんせん」を、同じあいて・同じ戦数で走らせます。 変えたのが 2 か所以上だと、何が効いたのか分からなくなることを確認します。 |
| 35–43 分 | 比べる | 前の勝率と後の勝率を、信頼区間つきで並べます。 幅が大きく重なっているなら、「上がった」とは言い切れません。 そのときは戦数(10/30/50 戦)を増やして、もう一度測ります。 |
| 43–45 分 | ふりかえり | 「〜を変えたら、勝率は〜から〜になった。だから、〜と言える/まだ言えない」を 1 文で書きます。 |
つまずきと、声かけ
| 生徒の様子 | よくある理由 | 声かけの例 |
|---|---|---|
| 「赤いメッセージが出た」 | Python の書きまちがい(字下げ・コロン・名前のつづり) | 「メッセージに出ている行番号の行だけ、読んでみよう。書いてある『こうしてみよう』は、どっちが近い?」 |
| 「変えたのに、動きが変わらない」 | あとの行で上書きされている。または、置いただけで使われていない | 「変えた行より下に、同じ変数を決めている行はないかな? 💤 の印が出ていないかも見てみよう」 |
| 「勝率が毎回ちがう」 | 戦数が少ないと、たまたまの幅が大きい | 「95% の幅を見てみよう。戦う回数をふやすと、幅はどうなる?」 |
| 「たくさん変えたので、どれが効いたか分からない」 | 変えた場所が複数ある | 「元に戻して、1 か所だけ変えてみよう。そのほうが、あとで人に説明できるよ」 |
評価の観点(例)
| 観点 | 見るところ |
|---|---|
| 知識・技能 | ブロックと Python の対応(もし=if、そうでなければ=else、行動を変数で決める)を、表に書ける |
| 思考・判断・表現 | 変える場所を 1 か所に絞り、勝率の変化から「言えること・まだ言えないこと」を 1 文で書ける |
| 主体的に学習に取り組む態度 | 結果が予想と違ったとき、仮説を書き直して、もう一度測っている |
もっと進みたい生徒には
ぼうけんの各章のあとにある「ステップアップ・チャレンジ」は、ブロックや Python で書くステージです。
- 直線射撃の基礎、追尾移動:変数と条件分岐を、自分で書く入口
- 回避行動、指向性バリアの活用:条件を組み合わせる
- 偏差射撃:動く相手の先を読んで撃つ(計算が要ります)
高校「情報Ⅰ」へ進むと、アルゴリズムと計算量まで扱えます(高校の授業案)。