一覧へ 情報Ⅰ (3) 第5回 | プログラムの基本構造 1
情報Ⅰ (3) コンピュータとプログラミング | 第5回

プログラムの基本構造 1

最初の 1 行を書いて動かす。表示する、計算する、箱に入れる。今日はこの 3 つで十分

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

準備 教室コードは新しいものにする。「教師」を押す。Python はページの中で動く(初回だけ部品を読み込むのに数秒。ネットが要る)。書いたコードは端末に残る。スマホでも動くが、キーボードがある端末が望ましい。

時間配分 前回まとめ・目標 4分 / 節1 表示する 12分 / 節2 計算する 12分 / 節3 箱に入れる 16分 / まとめ・自己評価・ふりかえり 6分

教科書: 新編情報Ⅰ 25 プログラムの基本構造 1(p.72)。Python。

この回の評価(指導要領 (3) ア(イ) イ(イ)。プログラミングの技能、順次構造。単元設計は 単元設計のページ)

  • 知識・技能 print・演算子・変数と代入・順次構造を、自分で動かしたプログラムで説明している(体験01〜03)
  • 思考・判断・表現 面積を求めるプログラムを、変数を使って自分で書いて動かしている(体験03)。エラーを読んで直している
  • 態度 エラーが出ても直して動かそうとしている。動いたプログラムを人に見せようとしている(ふりかえり)

ふりかえりの枚の自己評価の分布を見て、「まだ」が多い目標を次回冒頭で拾い直す。

前回のまとめ

手順を、曖昧さなく、必ず終わる形で書く

アルゴリズム→フローチャート・言葉→プログラミング言語で書く = プログラム

前回は手順を人の言葉と図で書いた。今日から、コンピュータが読める言葉(Python)で書く。人の言葉と違って、曖昧さは一切許されない。だからこそ、書いたとおりに動く

最初の 1 行は、画面に文字を出す

教師用メモ

前回「まだ」が多かった目標があれば 2 分拾う。今日は打つ時間が長いので、説明は最小に。

今日の目標

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

01
print で文字と数を表示するプログラムを書いて動かせる
02
演算子(+ − * / % )で計算し、文字と数の違いを説明できる
03
変数と代入を使って、面積を求めるプログラムを自分で書ける
01 | 12分
表示する

最初の 1 行を動かす

02 | 12分
計算する

電卓にする

03 | 16分
箱に入れる

変数で面積を求める

SECTION 01

表示する

書いたとおりに動き、1 字違えば動かない

ノートパソコンに向かう高校生。画面に一行の文字が表示され、隣で友人が指をさして喜んでいる
体験 01

最初の 1 行 | print

やること ①「実行」を押して動かす ② 2 行目を足して、自分の好きな言葉を表示する ③ 引用符(')を 1 つ消して実行し、エラーを読む ④ 直す
実行結果

※ 上の行から順に実行される(順次構造)。文字は ' で囲む。Ctrl + Enter でも実行できる

教師用メモ

進め方(10分)

  • 全員「実行」。Hello と World が 2 行で出る(初回は部品の読み込みで数秒待つ)。
  • 3 行目に自分の言葉を足す。日本語もそのまま表示できる。
  • わざとエラー: 引用符を 1 つ消す。「エラー: ...」が出る。「コンピュータは 1 字でも違うと動かない。エラーは怒られているのではなく、どこが違うかの手がかり」。

print は「組み込み関数」(あらかじめ用意された命令)。( ) の中を画面に表示する。

SECTION 02

計算する

3 + 4 × 5 は、23 か 35 か

電卓とノートパソコンを並べて、高校生が同じ計算の答えを見比べている
体験 02

電卓にする | 演算子

やること ①実行して 3 つの答えを予想と比べる ② 9%4 の % が何をしているか、数を変えて確かめる ③ 'Hello'+'World' と 3+4 の違いを言葉にする ④ 自分の誕生日の月×日を計算して表示する
実行結果

※ 演算子: + − * / %(余り) **(べき乗)。文字どうしの + はつなげる。'3'+'4' は 34 になる

教師用メモ

進め方(10分) 実行前に「3+4*5 はいくつ?」と聞く。23(掛け算が先)。9%4 は余りの 1。% は次回の偶数・奇数判定で使う。

拾いたい発言 「'Hello'+'World' はくっついた」→ 文字と数は別物。'3'+'4' を試させると 34 になり、驚く。目標 02。

比較演算子(== != < >)は次回の分岐で扱う。

SECTION 03

箱に入れる

名前を付けた箱に値を入れ、あとで使う

名前のラベルが貼られた箱に、高校生が数字の書かれたカードを入れていて、別の箱から取り出して計算している
仕組み

変数 | 値を入れる箱、x=x+5 は「今の x に 5 を足して x に入れ直す」

x = 10→
x10
→ x = x + 5→
x15
→ print(x)→ 15
変数値を入れておく箱。名前を付ける。x、r、area、month のように、中身が分かる名前がよい
代入 =右の値を左の箱に入れる。数学の「等しい」ではない。x = x + 5 は「今の x に 5 を足したものを x に入れ直す」
順次構造上の行から順に 1 つずつ実行する。3 行のプログラムは、1 行目 → 2 行目 → 3 行目
教師用メモ

「= は等しいではなく、入れる」を強調する。x = x + 5 が数学として変に見える生徒は多い。箱の絵で説明。

体験 03

変数で、面積を求める

やること ①実行して 15 が出るのを確かめる ② 半径 x の円の面積を表示するプログラムに書き換える(3.14 を使う) ③ 底辺 x・高さ h の三角形の面積 ④ x や h の値を変えても正しく出ることを確かめる
実行結果

※ 円の面積 = x * x * 3.14。三角形 = x * h / 2。変数の値を 1 か所変えれば、計算が全部変わる。それが変数を使う理由

教師用メモ

進め方(14分)

  • 実行 → 15。「なぜ 15?」を隣に説明(x に 10、x に x+5)。
  • 円の面積(教科書の問題)。x=5 area=x*x*3.14 print(area)。78.5。
  • 三角形。x=6 h=4 print(x*h/2)。12.0(割り算は小数になる)。
  • 早い生徒: 「半径を 2 倍にすると面積は何倍?」を変数を変えて確かめる。

よくあるエラー: 全角のスペースや記号(日本語入力のまま打つ)、閉じ括弧忘れ、変数名の打ち間違い(NameError)。エラー文に行番号が出るので、そこを見る。目標 03。

まとめ

表示・演算・変数 | 3 つで、順次構造のプログラムが書ける

print( )( ) の中を画面に表示する。文字は ' で囲む。数はそのまま。組み込み関数(あらかじめ用意された命令)
演算子+ − * / %(余り)。掛け算・割り算が先。文字どうしの + はつなげる。文字と数は別物
変数・代入名前を付けた箱に値を入れる(=)。x = x + 5 は入れ直し。値を 1 か所変えれば全部に効く
順次構造上から順に実行。アルゴリズムは順次・分岐・反復の 3 つの構造の組み合わせで表せる。今日はすべて順次。次回、分岐と反復

※ プログラムは料理のレシピに似ている。具材の代わりにデータ。命令に従って加工して結果を出す。エラーは「レシピのこの行が読めない」という手がかり

教師用メモ

「hello, world」が最初のプログラムの定番になった由来(C 言語の本)は雑談として。

道具で確かめる

試験の表記は、Python とどこが違うか

今日書いた行を貼って「→」を押し、対応する書き方を 2 つノートに書く

Python ⇄ 共通テスト用プログラム表記 変換ツール左に Python、右に試験の表記。ボタンで相互に変換する
  1. 「この枚で開く」を押す
  2. 今日書いた print や計算の行を左に貼る
  3. 「→」で右にどう変わるかを見る
  4. 右を少し変えて「←」で戻す
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る

※ この枚は提出しない。自分の手で確かめて、分かったことをノートに書く

教師用メモ

進め方 提出させない枚。手を動かして確かめるところまで。机間指導で、止まっている生徒だけを見る。

5分。対応を 2〜3 個だけ確認する。全部覚えさせない。第6〜8回でも使える。

道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。

今日のまとめ

3つの目標に、自分の書いたプログラムで答える

01
print 書いたとおりに表示された。引用符を 1 つ消したら止まった。エラーは手がかり
02
演算子 3+4*5 は 23。9%4 は 1。'Hello'+'World' はくっつく。文字と数は別
03
変数 x=10、x=x+5 で 15。半径を箱に入れれば面積の式は 1 つで済む
自己評価

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

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

今日の目標、自分はどこまで | 1 つずつ選ぶ
01print で表示するプログラムを書いて動かせる
02演算子で計算し、文字と数の違いを説明できる
03変数と代入を使って面積のプログラムを書ける
できただいたいまだ
教師用メモ

1 分。変数は「まだ」が出やすい。次回冒頭で x=x+5 をもう一度。

ふりかえり

今日いちばん詰まったエラーと、どう直したか

一文でよい。「〇〇というエラーが出て、△△を直したら動いた」の形。詰まらなかった人は、人に教えたことを

みんなのエラーと直し方
教師用メモ

3 分。エラーの種類(括弧・引用符・全角・変数名)を投影で分類すると、次回のデバッグの助けになる。書いたコードは端末に残っている。