一覧へ 情報Ⅰ (3) 第11回 | プログラムで問題を解く
情報Ⅰ (3) コンピュータとプログラミング | 第11回 | 単元末の課題(1/2)

プログラムで問題を解く

身のまわりの手作業を 1 つ、プログラムに任せる。目的を決め、手順を書き、動かして、直す

50分 | キーボードがあるとよい
教師用メモ

準備 教室コードは新しいものにする。次回も同じコードを使うので板書して残す。「教師」を押す。前回のふりかえりで出た「試したいこと」を印刷して配ると入りやすい。

時間配分 目標・課題の説明 6分 / 節1 目的を決める 12分 / 節2 手順を書く 12分 / 節3 書いて動かす 16分 / 自己評価・ふりかえり 4分

この回の評価(指導要領 (3) ア(イ) イ(イ)。単元末のパフォーマンス課題の前半。評価規準と B・A の基準は 単元設計のページ)

  • 知識・技能 順次・分岐・反復のいずれかを使ったプログラムが動いている(体験03)
  • 思考・判断・表現 何を楽にするかを決め、曖昧さのない手順を 3〜5 行で書き、プログラムにしている(体験01・02・03)
  • 態度 動かないところを直そうとしている(体験03・ふりかえり)

この回は「作る」。次回が「評価して直す」。今日できたところまでで提出させ、完成を急がせない。

この単元でやってきたこと

足し算の機械に、手順を書いて渡してきた

五大装置→CPU が 1 命令ずつ→AND・OR・NOT→曖昧さのない手順
print・変数→if・for・while→リスト・input→乱数・関数→モデルとシミュレーション

道具はそろった。ここからの 2 回は、自分で選んだ問題に使う。うまく動かなくてよい。動かないところを見つけて直すところまでが課題

教師用メモ

2 分。使ってよい道具の一覧として板書に残す。「全部使う必要はない。1 つでよい」。

単元末の課題

身のまわりの手作業を一つ、プログラムに任せる

今日(第11回)①目的を決める ②手順を 3〜5 行の言葉で書く ③Python で書いて動かす ④提案カードを提出する
次回(第12回)⑤ほかの人のカードを観点で評価する ⑥もらった評価をもとに直す ⑦改訂版を出す
手順が明確 = 誰が読んでも同じ動きになる 動いて目的に合う = 実行でき、決めた目的を果たす 直して良くなった = 直した点と理由が言える

※ 大きなものを作らなくてよい。3 行のプログラムで、毎日の 1 分が消えるなら、それは立派な問題解決

教師用メモ

3 つの観点は評価に使う(次回の相互評価と同じ言葉)。ここで先に見せることで、何を目指すかがはっきりする。

B の目安: 順次・分岐・反復のどれかを使ったプログラムが動く。A の目安: 関数かリストで構造を整理している。

今日の目標

授業の終わりにできるようになること

01
任せたい手作業を一つ選び、楽になる量を数で書ける
02
その手順を、判断に迷わない3〜5 行の言葉にできる
03
手順をプログラムにして動かし、止まったところを見つけられる
01 | 12分
目的を決める

繰り返している作業から

02 | 12分
手順を書く

まず日本語で

03 | 16分
書いて動かす

1 行ずつ足していく

SECTION 01

目的を決める

何を、どれだけ楽にするか

毎日同じ計算を電卓で繰り返している高校生が、手を止めてノートパソコンを見つめている
体験 01

任せたい手作業と、楽になる量

自分か家族か部活で、繰り返している作業を一つ。楽になる量は「1 回 〇分 × 週 〇回」のように数で書く

任せたい手作業
どれだけ楽になるか

全員の「作業 → 楽になる量」が右に並ぶ。似たものをまとめて読み上げ、迷っている人が選べるようにする

みんなの 任せたい作業 → 楽になる量
教師用メモ

進め方(10分) 一人で 5 分。全員分を読み上げながら、実現できそうなものに印を付ける(5分)。

出やすい例 点数の合計と平均、割り勘の計算、班分けのくじ、持ち物のチェック、単位の変換、タイムの記録から順位、部活の当番決め、おこづかいの残り計算。

大きすぎる例への声かけ 「アプリを作りたい」→ 「その中で、いちばん面倒な計算はどれ? そこだけ作る」。切り出すことを教える場面。

思いつかない生徒には、前回のふりかえりで出た「試したいこと」を見せる。目標 01。

SECTION 02

手順を書く

日本語で書けないものは、プログラムにもならない

付箋に一行ずつ手順を書いて、机の上に上から順に並べている高校生
体験 02

手順を 3〜5 行の言葉にする

「①〜する ②〜する ③〜する」の形で、1 行に 1 つの動作。第4回でやったとおり、数・回数・条件を入れて、判断に迷わない言葉にする

全員の手順が右に並ぶ。「〜くらい」「いい感じに」など曖昧な語が残っているものを 2 つ拾い、直し方をクラスで考える

みんなの手順
教師用メモ

進め方(10分) 一人で 6 分。曖昧語が残っているものを 2 つ拾って直す(4分)。

見るところ ①入力(何を受け取るか) ②処理(何をするか) ③出力(何を出すか)が分かれているか。分岐や反復が要るかどうかは、この時点で見当がつく(「〜なら」があれば if、「全部について」があれば for)。

紙のフローチャートを描いてもよい。図のほうが速い生徒がいる。目標 02。

SECTION 03

書いて動かす

一度で動くことは、ほとんどない

画面のエラー表示を見ながら、手元のメモと見比べて打ち直している高校生
体験 03

自分の手順を、Python にする

やること 体験 02 で書いた手順を、1 行ずつプログラムにする。下は例(点数の平均)。消して自分のものを書く。書いた内容はこの端末に残るので、次回も続きから直せる
実行結果

※ # から後ろはコンピュータが読み飛ばす(覚え書き)。エラーが出たら、書いてある行番号のところを見る。字下げ・コロン・引用符・全角の記号が定番の原因

教師用メモ

進め方(16分) 机間指導。手を出さずに、どこでエラーが出ているかを一緒に読む。

よくあるエラーと直し方 全角スペース・全角の括弧や引用符(見た目で気づきにくい)/字下げの不一致/コロンの抜け/リストの角括弧と丸括弧の取り違え/文字と数の足し算(int( ) が要る)。

止まっている生徒へ 「まず print だけ動かす」「1 行ずつ足す」。全部書いてから実行させない。

早く終わった生徒へ 関数に分ける(A の基準)、input で使う人に聞く、リストを長くしても動くか確かめる。

提出

提案カードを出す | 今日できたところまででよい

目的 | 何を楽にするか
手順 | 3〜5 行(体験 02 で書いたもの)
使った仕組み | 順次・分岐・反復・リスト・乱数・関数から
いまの状態 | 動いたか、どこで止まっているか

全員の提案カードが右に並ぶ。次回、この一覧に相互評価が付く。未完成のカードにも印を付けて残すよう伝える

みんなの提案カード
教師用メモ

進め方(5分) 4 欄すべて必要。「いまの状態」に「動かない」と書いてよいと明言する。次回はそこを直すのが課題だから。

教室コードを板書して残す。次回、同じコードでこの一覧を開く。

今日のまとめ

目的・手順・プログラムの順で作った

01
目的 繰り返している作業を一つ選び、楽になる量を数で書いた
02
手順 3〜5 行の言葉に。曖昧な語を、数・回数・条件に直した
03
プログラム 1 行ずつ書いて動かした。エラーは行番号から探した

次回は、ほかの人のカードを3 つの観点で評価し、もらった評価をもとに直して改訂版を出す

自己評価

今日の目標、自分はどこまで

3 つの目標それぞれに、できた/だいたい/まだ、を 1 つ選ぶ。右の帯にクラス全体の分布が出る

今日の目標、自分はどこまで | 1 つずつ選ぶ
01何を楽にするかを決め、楽になる量を数で書けた
02手順を、判断に迷わない 3〜5 行の言葉にできた
03手順をプログラムにして、動かしてみた
できただいたいまだ
教師用メモ

1 分。「まだ」が多い項目は、次回の冒頭に時間を回す。

ふりかえり

いま止まっているところ

一文でよい。動いた人は「次に足したいこと」を書く

みんなの止まっているところ
教師用メモ

3 分。同じ詰まり方が多ければ、次回の冒頭で 5 分使って全体に説明する。教室コードを忘れずに板書。