一覧へ 情報Ⅰ (3) 第4回 | アルゴリズムの表現
情報Ⅰ (3) コンピュータとプログラミング | 第4回

アルゴリズムの表現

「塩を少々」は、コンピュータには通じない。曖昧さのない手順を並べ、直して、図にする

50分
教師用メモ

準備 教室コードは新しいものにする。「教師」を押す。体験 01・03 は端末内で完結する。

時間配分 前回まとめ・目標 4分 / 節1 手順を並べる 12分 / 節2 曖昧さをなくす 14分 / 節3 分岐をたどる 14分 / まとめ・自己評価・ふりかえり 6分

教科書: 新編情報Ⅰ 24 アルゴリズムの表現(p.70)。

この回の評価(指導要領 (3) ア(イ) イ(イ)。アルゴリズムを文章・フローチャート・アクティビティ図で表現する方法、正確に記述する重要性。単元設計は 単元設計のページ)

  • 知識・技能 アルゴリズムの条件(必ず終わる・曖昧さがない・手間を考える)とフローチャートの記号を説明している(体験01・03・まとめ)
  • 思考・判断・表現 手順を正しい順に並べ(体験01)、曖昧な指示を誰がやっても同じ結果になる指示に直し(体験02)、分岐のある手順を図でたどっている(体験03)
  • 態度 身のまわりの手順を「コンピュータに伝わるか」の目で見直そうとしている(ふりかえり)

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

前回のまとめ

足し算を高速に繰り返す、有限の桁の機械

AND・OR・NOT→半加算器→四則演算|0.1 + 0.2 ≠ 0.3

機械は単純なことしかできない。だから、やらせたいことを単純な手順に分けて、曖昧さなく書く必要がある。その手順がアルゴリズム。今日はまず人の作業で確かめる

インスタントラーメンの作り方を、誰がやっても同じになるように書けるか

教師用メモ

前回「まだ」が多かった目標があれば 2 分拾う。

今日の目標

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

01
手順を正しい順に並べ、アルゴリズムの 3 つの条件を言える
02
曖昧な指示を、誰がやっても同じ結果になる指示に直せる
03
フローチャートの記号を読み、分岐のある手順をたどれる
01 | 12分
手順を並べる

バラバラのカードを順に

02 | 14分
曖昧さをなくす

「少々」を数にする

03 | 14分
分岐をたどる

雨の日、遅刻しそうな日

SECTION 01

手順を並べる

順番が違えば、できあがりが違う

台所で、インスタントラーメンの作り方を描いた絵カードを高校生が順番に並べ直している
体験 01

インスタントラーメンの手順を、正しい順に

バラバラに並んだ手順を、実行する順にタップする。タップした順に番号が付く(もう一度タップで外れる)。全部に番号を付けたら「答え合わせ」

教師用メモ

進め方(7分) 一人で 3 分。「スープを先に入れる派」がいれば、それも一つのアルゴリズム(結果が同じなら手順は複数ありうる)。ただし「麺を入れてから水を入れる」は失敗する。順序が結果を決める。

アルゴリズムの条件(教科書): 命令を記録する容量や手間を考える/何回繰り返してもよいが必ず終了する/曖昧さがなく判断に迷わない。「3 分間ゆでる」は終わるが「やわらかくなるまで」は判断に迷う、を次の節へ。目標 01。

まとめ 01

アルゴリズム | 問題を解くための、明確な手順

アルゴリズムある問題を解決するための手順を、明確に示したもの。レシピ・説明書・楽譜も、人向けのアルゴリズム
コンピュータ向けの条件①必ず終了する(何回繰り返してもよいが)②曖昧さがなく判断に迷わない ③命令の量と手間を考える
プログラムアルゴリズムをプログラミング言語で書いたもの。曖昧な手順からは正しいプログラムは書けない

※ 世界最古のアルゴリズムは紀元前 300 年ごろのユークリッドの互除法(2 つの数の最大公約数を求める)。コンピュータより 2,000 年以上古い

教師用メモ

目標 01。「結果が同じでも手順が違えば速さが違う」は第11・12回で扱う(効率)。

SECTION 02

曖昧さをなくす

人は「少々」を解釈できるが、機械はできない

料理のレシピを読んでいるロボットが、塩の瓶を持ったまま困って止まっていて、横で高校生が計量スプーンを差し出している
体験 02

曖昧な指示を、誰がやっても同じになる指示に

レシピ・掃除・部活・家の手伝いで見かける「曖昧な指示」を一つ。それを、数・回数・条件を入れて、判断に迷わない形に直す

曖昧な指示
曖昧さのない指示

全員の「曖昧 → 明確」が右に並ぶ。直し方が「数にした」「回数にした」「条件にした」のどれかを見る

みんなの 曖昧 → 明確
教師用メモ

進め方(9分) 一人で 4 分。読み上げて直し方を分類: 量を数に(少々→小さじ 1/4)、時間を数に(しばらく→3 分)、状態を条件に(やわらかくなるまで→箸で切れるまで、または 3 分)、回数に(何度か→3 回)。

拾いたい発言 「人なら伝わるのに」→ 人は曖昧さを自分で解釈できる。コンピュータはできない。だから書く側が全部決める。目標 02。

「きれいにする」「ちょうどよく」「たくさん」が定番の曖昧語。

SECTION 03

分岐をたどる

雨なら、遅刻しそうなら。条件で道が分かれる

玄関で空を見上げる高校生。頭の上に、雨か晴れかで分かれる道の絵が浮かび、自転車とバスの絵につながっている
体験 03

登校の手順を、フローチャートでたどる

A さんは 8 時 30 分の始業までに登校する。雨でなければ自転車で 20 分。雨の日はバスで 30 分。ただし遅刻しそうなら雨でも自転車。今日の条件を選ぶと、図の中で通る道が濃くなる

雨が降っている?
いまの時刻は?

記号: 角丸=開始・終了、四角=処理、ひし形=判断(はい/いいえで分かれる)

開始 雨? いいえ はい バスだと遅刻? はい いいえ 自転車 20 分 バス 30 分 学校に着く
教師用メモ

進め方(10分) 4 通りの条件を全部試す(教科書 p.71 問題②)。「雨で 8:05」だけバスにならない。「この図は、誰が読んでも同じ道を通る」。それがフローチャートのよさ。

記号 角丸=開始・終了、四角=処理、ひし形=判断。矢印で流れ。アクティビティ図も同じ目的の別の記法(教科書 p.71)。

余裕があれば「朝起きてから家を出るまで」を紙で 5 つの箱に描かせる(問題①)。目標 03。

まとめ 03

フローチャート | 処理・判断・流れを、誰が読んでも同じになる図に

フローチャート(流れ図)記号を使って処理手順を図にしたもの。角丸=開始・終了、四角=処理、ひし形=判断、矢印=流れ
アクティビティ図一連の手続きを表す別の図。開始・終了・処理・分岐の記号が違うが、目的は同じ
3 つの構造手順は「順に進む」「条件で分かれる」「繰り返す」の組み合わせで表せる(順次・分岐・反復)。次回からプログラムで書く

図にすると、曖昧なところがひし形の中の言葉として見える。「遅刻しそう」は「8 時に家を出ていない」のように数にする

教師用メモ

目標 03。次回から Python。「今日の図が、そのままプログラムの形になる」と予告。

道具で作る

自分の手で 1 つ作って、持ち寄る

分岐のある流れ図を 1 つ自分で作り、条件を変えて通る道が変わることを確かめて、作った題材を出す

フローチャート記号を並べて流れ図を作り、条件を変えて道をたどる
  1. 「この枚で開く」を押す
  2. 分岐のある流れ図を 1 つ作る
  3. 条件を変えて、通る道が変わるのを見る
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
Python ⇄ 共通テスト用プログラム表記 変換ツール書いたプログラムから流れ図を自動で描く
  1. 「この枚で開く」を押す
  2. サンプルを 1 つ読み込む
  3. 「フローチャート」を押して、図が出るのを見る
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
作ったものを、一文で
みんなの作ったもの
教師用メモ

進め方 作れた人から出す。うまくいかない形も価値がある。詰まっている生徒には、手順の何番で止まっているかを聞く。

6分。図は機械にも描ける。手順を考えるのは人の仕事、を押さえる。

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

今日のまとめ

3つの目標に、自分の操作で答える

01
手順を並べる 順番が結果を決める。必ず終わる・曖昧さがない・手間を考える、の 3 条件
02
曖昧さをなくす 「少々」を数に、「しばらく」を時間に、「やわらかくなるまで」を条件に。書く側が全部決める
03
フローチャート 角丸・四角・ひし形・矢印。雨と時刻の 4 通りで、誰がたどっても同じ道
自己評価

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

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

今日の目標、自分はどこまで | 1 つずつ選ぶ
01手順を正しい順に並べ、アルゴリズムの 3 条件を言える
02曖昧な指示を誰がやっても同じになる指示に直せる
03フローチャートの記号を読み、分岐をたどれる
できただいたいまだ
教師用メモ

1 分。「まだ」が多い目標は、次回の冒頭で拾い直す。

ふりかえり

身のまわりの「手順書」で、コンピュータに通じない言葉を一つ

一文でよい。「〇〇の『△△』は、□□に直せば通じる」の形

みんなの見つけた言葉
教師用メモ

3 分。次回から Python を書く。キーボードのある端末があれば持参、と伝える。