科目名 | アルゴリズム |
項目名 | データの型とデータの構造 |
本時の目標 | 論理的なデータ構造について学習を行ない, それぞれの特徴,及びどのような手法で実現されるかを理解させる. |
評価方針 | 「二分木・完全二分木実装方法演習プリント」では
合否判定を,
「二分探索木・スタック・キューの実装」については,
4段階評価を行なう.
全課題について,試験時までに合格となっていることを 求める. |
評価基準 | 完全二分木は,親子関係を式として表わしている事を
合格条件とする.
4段階評価を行なうものは,「記述した手続きに 従うことで目的の結果を得られる事」を合格条件とし, 具体的な評価としては,設計理由が明確であること, 適切であること,効率の良さに着目する. |
時間 | 段階 | 学習活動 | 学習形態 | 指導上の留意点 | 評価 | 資料 |
第
8 時 50 分 |
導
入 5 分 |
1.配列・リストについて, それぞれのデータの扱い方を確認する.(5分) | 一斉 | 論理的なデータ構造を実装する際の基礎部分となるので,
実装時に要求される内容を主に確認する.
特に,ポインタについて確認を行なう. |
観察
・ 発表 |
|
展
開 42 分 |
2.根付き木について解説を行ない, その過程から木構造で用いられる用語を 理解させる.(10分) | 一斉 | 木構造内での用語が,現実の世界でも類似した意味で 用いられていることを理解させる. | 観察 | ||
3.二分木について,その特徴・制約条件・ 用途について簡潔に扱う.(8分) | 一斉 | 制約条件からどのような特徴を見いだすことができるのか,
理解させる.
データ構造は後程扱うため,概念の理解にとどめる. |
観察 | |||
4.完全二分木について, その特徴・制約条件について簡潔に扱う. (8分) | 一斉 | 制約条件を明確にすることを目的とする.
配列で用いた時の親子関係は,学習活動5で扱う. |
観察 | |||
5. 二分木,完全二分木の 実装方法を考察.(16分) | 個人 | リストの応用から,二分木を考えさせる.
それぞれを実現するためには,どのようなデータ構造に
すればよいのかを考察する.
|
観察 | 二分木・完全二分木実装方法演習プリント | ||
ま
と め 3 分 |
6. 木構造の確認. 次回の授業の連絡.(3分) | 一斉 | 木構造内での用語を学んだことを確認する.
次回,二分木に更に制約を加えた二分探索木を取り扱うことを伝える. 二分木・完全二分木実装方法演習プリントを回収する. |
観察 |
時間 | 段階 | 学習活動 | 学習形態 | 指導上の留意点 | 評価 | 資料 |
第
|
導
入 5 分 |
7.前回の復習として,木構造で用いられる用語, 及び二分木の復習を行なう.(5分) | 一斉 | 二分木を生成する際の制約条件に,特に注意する. | 観察
・ 発表 |
|
展
開 40 分 |
8.二分探索木について,目的,特徴,利点等を 理解させる.(5分) | 一斉 | この後演習を行なうため,内容は 新しい制約条件程度にとどめる. | 観察 | ||
9.二分探索木内の要素の探索方法を考察する.(7分) | 個人 | 例となる二分探索木を示し,ある要素がその中に
含まれるかどうかを調査する方法を考察させる.
ルートの与え方による調査効率への影響も理解させる. |
観察 | 二分探索木の例 | ||
10.二分探索木へのノード追加方法を 考察する.(6分) | 個人 | 二分探索木の条件を満たすようなデータの追加方法を考えさせる. | 観察 | 課題プリント
(二分探索木の操作) 〔解答例〕 | ||
11.グループ毎考察した方法をまとめ, フローチャートとしてその手続きを示す.(6分) | グル
ー プ |
方法論でばらつきがでた場合は,その異なる意見も 分かる形でアイディアをまとめておく. | 観察 | |||
12.各グループが考えたアルゴリズムの中から, 数種類のアルゴリズムをとりあげ, 評価を行なう.(10分) | 一斉 | 異なった方針の数だけ,取り扱うように配慮する.
時間が十分取れない場合は,一般的な方法と, 教員が興味をもった方法について取り上げる. |
観察
・ 発表 |
|||
13.二分探索木のノード削除方法を 把握する.(6分) | 一斉 | 削除方法の演習には十分な考察が必要であり,かつその細かい処理手順を 全員が記述するのは困難であると思われるため, アルゴリズムの大まかな流れを,参考として紹介する程度にとどめる. | 観察 | 二分探索木のノード削除方法 | ||
ま
と め 5 分 |
14.今まで扱ってきた木構造について,
再度確認.
次回,スタックとキューについて 学習することを伝える.(5分) |
一斉 | 各制約条件と,それを満たすための操作手法について扱ったことを 確認する. | 観察 |
時間 | 段階 | 学習活動 | 学習形態 | 指導上の留意点 | 評価 | 資料 |
第
|
導
入 5 分 |
15.スタックとキューの簡単な紹介を行なう.(5分) | 一斉 | スタックとキューについて,現実社会の
データの扱い方を基に簡単に紹介を行なう.
本時に扱う内容の紹介,という位置づけで行なう. |
観察 | |
展
開 44 分 |
16.スタックと, その特徴・活用例について扱う.(8分) | 一斉 | スタックがLIFOであることについて,
その意味を理解させる.
基本的なデータの操作方法については, 実装を考慮に入れつつ説明を行なう. |
観察 | ||
17.キューと, その特徴・活用例について扱う.(8分) | 一斉 | キューがFIFOであることについて,
その意味を理解させる.
基本的なデータの操作方法については, 実装を考慮に入れつつ説明を行なう. |
観察 | |||
18.スタックを,リストを用いて実装(14分) | グル
ー プ |
実装方法は一通りではないことを理解させる.
処理の目的・操作後の状態を把握させた上で 作業を行なわせる. 作業が終わったグループは,プリントの残りの3題を 取り組ませる. |
観察 | 課題プリント(スタック・キューの実装) 〔解答例〕 | ||
19.スタックを,リストを用いて実装する 方法を確認(14分) | 一斉 | 作業が終わったグループから,
板書を行なってもらう.
各々の解答を示してもらうことで, グループ毎の意見を交換し合う. 要求内容が十分に伝わらないまま時間が 過ぎたグループに対しては,作業方針を示すことを目的とする. |
観察
・ 発表 |
|||
ま
と め 1 分 |
20.次回,引き続き作業を行ない, 討論を行なうことを伝える.(1分) | 一斉 | スタック・キューについて 十分な理解をしていない人については, 質問等を行なうことで, 理解度を深めておくように連絡をする. | 観察 |
時間 | 段階 | 学習活動 | 学習形態 | 指導上の留意点 | 評価 | 資料 |
第
|
導 入 1 分 |
21.前回に引き続き, スタック・キューをリスト・配列で実装する作業を 行なうことを通知する.(1分) | 一斉 | 討論会を行なう時間のメドを,合わせて通知する. | 観察 | |
展 開 42 分 |
22.キューのリストによる実装 (10分) | グル
ー プ |
実装方法は一通りではないことを理解させる.
処理の目的・操作後の状態を把握させた上で 作業を行なわせる. |
観察 | 課題プリント(スタック・キューの実装) 〔解答例〕 【配布済】 | |
23. スタック・キューの配列による実装 (22分) | ※20同様
キューを配列で実装する際に困難となる点を, 実装過程の中から発見させる. |
|||||
24.スタック・キュー実装方法の 討論会(10分) | 一斉 | 各項目毎,作成が終わったグループに板書を求め
(特定グループの負担にならないように配慮する),
その内容を基に,配列・リストを用いる際の利点・欠点を
確認する.
討論時に,各グループが作成した内容を修正する場合は, 別の色を用いるように注意する. |
観察
・ 発表 |
ま と め 7 分 |
25.データを効率よく扱うための 構造は複数提案されており, 状況に応じた選択の重要性を理解させる.(7分) | 一斉 | 個々のデータ型について, どのような場面で有効であるかの一例を 再度確認する. | 観察 |