CodeTank Arena を授業で使う
戦車を動かすプログラムを書いて戦わせる、無料のプログラミング教材です。 小学生が絵のカードを並べるところから、高校「情報Ⅰ」で扱うアルゴリズムと計算量まで、 同じ 1 つの画面の中で地続きにつながっています。 登録もインストールも要りません。
生徒が、自分から考えはじめる理由
プログラミングの授業でいちばん難しいのは、「やってみたい」という気持ちを起こすことです。 この教材は、それを「勝ちたい」に任せます。
作戦が、その場で戦車の動きになる
並べたブロックがそのまま戦車の動きになります。1 試合は数秒から 1 分ほど。 「置く → 見る → 直す」を、授業の中で何度も回せます。
負けたときに、答えでなく問いが返ってくる
試合のあとの分析画面は、正解を示しません。「どの距離なら当たっている?」と問い、仮説を書かせます。 勝った試合でも開けるので、「負けた子だけが振り返る」形になりません。
つまずいても、置き去りにされない
ステージごとのヒントがあり、エラーは行番号つきの平易な日本語で出ます。 ボスは 3 本勝負なので、まぐれ勝ちも、1 回の負けで終わることもありません。
ブロックから Python まで、書き直さない
かんたんブロックで作った作戦は、そのまま Python として読めます。 進度のちがう生徒が 1 つの教室にいても、みな同じ画面の中で、自分の段に合わせて進められます。
学校段階を選んで、45 分の授業案を見る
学年ごとに、ねらい・準備・分刻みの進め方・つまずきへの声かけ・評価の観点をまとめました。 どれも ぼうけんの実際のステージに沿っています。
授業案の分数は、目安です。教室では、ステージを選ぶ数や、ふりかえりの長さで調整してください。 ゲーム内の試合そのものは短く、下の表のとおりです。
授業計画の目安になる、試合の長さ
授業案の分数を決める材料として、模範解答で実際に試合を走らせて、ゲーム内の秒数を測りました。 (生徒が考える時間は含みません。再生は早送りできます。)
| 種類 | 1 試合の長さ | 例 |
|---|---|---|
| 🎯 れんしゅう | 4〜23 秒(最長は 5-3 の 60 秒) | 1-1 はじめの一歩 4 秒/3-1 よける 20 秒 |
| ⚔ バトル | 4〜43 秒 | 2-4 はじめての撃ち合い 7 秒/4-3 かたいまもり 43 秒 |
| 👑 ボス | 3 本勝負で、合計 30 秒〜2 分ほど | 2-5 スナイパー 41・43・41 秒 |
試合の待ち時間はほとんどありません。授業の時間を決めるのは、生徒が作戦を考えて直す時間です。
授業の前に、先生がしておくこと(3 分)
- 端末でこのサイトを開き、初回の質問(プログラムを作ったことがあるか)に答えられることを確認します。答えは、ガレージであとから変えられます。
- ガレージの「もっと見る」にある 「🔓 かんたんブロックの部品をぜんぶ出す」は、先生・経験者向けの設定です。授業の前に先生が試すときに使います。生徒は、ぼうけんで部品を 1 つずつ手に入れます。
- ブラウザのデータを消すと、作ったものも消えます。共用端末では、授業の終わりにガレージの「📤 書き出し」でファイルに保存するよう伝えます。
3 つの見え方で、同じ作戦を読む
生徒が書いたものは、いつでも 3 つの見え方で並べて確認できます。書き直しではなく読み替えなので、 前の段でつくったものが無駄になりません。
| 段 | 見え方 | 想定 |
|---|---|---|
| 第 1 段 | かんたんブロック(絵のカードを並べる。文字も数字も打たない) | 小学生・はじめて |
| 第 2 段 | ブロック(Python と 1 対 1 で対応する。値や変数名はプルダウンで選ぶ) | 中学生・Scratch 経験者 |
| 第 3 段 | Python(直接書く) | 高校生・情報Ⅰ |
| 読む専用 | 共通テスト用プログラム表記(DNCL) | 共通テスト「情報」の読解練習 |
共通テスト用プログラム表記(DNCL)に対応しています
書いた Python を、大学入学共通テスト「情報」で使われる書き方に並べて表示できます。 自分が考えた作戦が試験の表記でどう書かれるのかを、問題集ではなく自分のコードで確かめられます。
この表示は読む専用です(この表記で書いて動かすことはできません)。 記法は現行の「共通テスト用プログラム表記」に合わせてあります。
計算量を「重さ」として体験できます
1 回の思考(0.1 秒ごと)で使える命令数に上限があります。画面の「命令数メーター」が、 その回に何命令使ったかをその場で数字にします。
最短経路を探す関数のような重い処理も、この命令数に加算されます。 つまり「重い処理は重い」ことが、説明ではなく手ざわりとして分かります。 上限を超え続けると戦車は動きを止めるので、生徒は自分で軽い書き方を探すことになります。
データの活用に、そのまま使えます
試合のあと、6 種類のグラフが出ます(すべてブラウザの中だけで動きます)。
- 被弾ヒートマップ:どのマスでやられているか
- 射撃距離の散布図:どの距離なら当たるか(○=命中/✕=失敗)
- 距離別の命中率:1 マス刻みのヒストグラム
- HP の推移:どの時間帯に打たれているか
- 命令数の消費:思考ごとの計算量
- 移動の軌跡:両者の動き
画面は答えを出しません。問いを出します(「どの距離なら当たっている?」)。 仮説を書く欄があり、書いてからもう一度戦って確かめる流れになっています。 勝った試合でも開けるので、「負けたときだけ振り返る」形にはなりません。
学習指導要領との対応
| 単元 | 該当する機能 |
|---|---|
| (2) コミュニケーションと情報デザイン | バトル分析でのグラフの選び方、思考の可視化 |
| (3) コンピュータとプログラミング | 変数・分岐・反復・関数/幅優先探索による最短経路/計算量(命令数メーター)/モデル化とシミュレーション(試合の物理計算そのものが題材) |
| (4) 情報通信ネットワークとデータの活用 | 散布図・ヒストグラム・標本の大きさ・仮説検証/ハッシュと再現性(同じ入力なら同じ結果になることの確認) |
上の表は高等学校「情報Ⅰ」の区分です。小学校・中学校での位置づけは、それぞれの授業案のページに書きました。
学校の端末・ネットワークの条件
| 項目 | 状態 |
|---|---|
| アカウント | 不要。作る画面そのものがありません |
| インストール | 不要。ブラウザだけで動きます |
| 外部 CDN | 一切使いません。フォントも部品も、すべてこのサイトから配っています |
| 通信 | 最初の読み込みだけ。開いたあとはサーバーと通信しません |
| 画面 | 1280 × 800(GIGA 端末の標準的な画面)で 3 ペインが並びます。タブレットは 2 ペイン+タブ切りかえ |
| タッチ操作 | ブロックは指でドラッグできます。タップと ↑↓ ボタンでも同じことができます |
| 通信が切れたとき | 一度ひらいていれば、そのまま最後まで遊べます(ページを読み直すには通信が要ります) |
安全とプライバシー
- 生徒の氏名・メールアドレスなど、個人情報を一切集めません(入力する欄がありません)
- 書いたプログラムと遊んだ記録は、その端末のブラウザの中だけに残ります
- アクセス解析ツールを入れていません。閲覧の様子を外部のサービスへ送ることはありません
- ブラウザのデータを消すと作ったものも消えます。ガレージの「書き出し」でファイルに保存できます
保護者に配るお知らせや、家庭への説明は 保護者向けのページにまとめてあります。
これから作るもの
授業でお使いになる前に、次の機能はまだ無いことをご確認ください(開発中です)。
- コードを配って、クラス単位で参加できるようにするしくみ
- 先生が生徒の進み具合や提出物を見られる画面
- 全国のプレイヤーと毎日戦う対戦モード
いまの形でも、1 人 1 台の端末でそれぞれが遊び、画面を見せ合う使い方であれば授業で使えます。 進み具合は、ぼうけんの一覧(「進み具合 ○ / 26 ステージ」が出ます)を見せてもらって確かめます。 提出は、ガレージの「書き出し」で作ったファイルを集める形になります。