情報科(アルゴリズムとプログラム)学習指導案
1 単元名 第2 章 プログラムの基礎 3 節 基本的な命令文 2 単元設定の理由 ○単元観 本単元は、プログラムの構成や基本的な命令文などを取り扱うとともに、学校や生徒の実態に応じ た課題によるプログラム作成の実習などを通して、プログラミングに関する基礎的な知識と技術を習 得させることをねらいとしている。本単元のプログラム言語はオブジェクト指向型言語であるJava言 語で、産業社会で用いられている割合が高い言語の1つである。したがって、生徒が卒業後すぐに実 社会に対応できるようになることもねらいとしている。 ○生徒観 1学期は身近な物事のアルゴリズムをフローチャートで表現することや Java 言語を用いてプログ ラムの入門として文字列の表示や簡単な計算プログラムについて学習した。アルゴリズム表現やプロ グラミングの定着度は練習問題の解答や考査の成績から個人差が大きくあることがわかった。1学 期、頻発していた入力ミスによるデバッグは全角・半角に注意するようになり減少し、プログラム完 成までの時間が短縮傾向にある。 ○指導観 プログラミングを学ぶ上でアルゴリズムの理解は必要不可欠であることから、本単元では、プログ ラムを作成する際に、その処理のアルゴリズムについて考える時間を確保する。また、本単元は基本 制御構造の中でも「条件分岐」と「繰り返し」の内容となるので、命令語に加えて、if 文や for 文など の構文を理解しなければならない。場合によっては、処理手順をフローチャートだけでなく、日本語 文や箇条書きで表現し、構文をそれらに対応させながら、理解を深めさせていく。 プログラムは些細な入力ミスでも実行できず実際のプログラマーも苦慮するので、プログラマーは 命令語や構文をオブジェクトとして取り出しプログラムを組んでいく。したがって、本単元ではその 環境に近づけるために、過去に生徒が作成したプログラムをオブジェクトとして呼び出し、加工する ように指導する。また、実行と修正に繰り返し根気強く取り組むこともプログラミングの要素である ことから、プログラミングに取り組む時間をできる限り多く確保する。 定着度の差については、基本問題と応用問題を準備することで、苦手としている生徒には教員が丁 寧に指導しつつ、得意としている生徒は主体的に取り組めるようにする。 ただし、本科目はどのプログラム言語にも共通する基礎的な知識と技術を習得させることをねらい としているので、オブジェクト指向等のJava 言語特有の性質については取り扱わないものとする。3 単元指導目標(到達目標) ・アルゴリズムの重要性を実感し、アルゴリズムの記述に積極的に取り組む。 [関心・意欲・態度] ・問題文に合わせてアルゴリズムをフローチャートで記述できる。 [思考・判断・表現][技能] ・プログラミングの実習に積極的に取り組む。 [関心・意欲・態度] ・命令語や構文を理解しながらプログラミングができる。 [知識・理解] [技能] ・アルゴリズムに合わせてプログラミングができる。 [技能] 4 指導計画(単元の配当時間) 全15時間 第1 次 単分岐のアルゴリズムとプログラム 2時間 第2 次 多分岐のアルゴリズムとプログラム 3時間 第3 次 繰り返し(for 文)のアルゴリズムとプログラム 3時間(本時2/3) 第4 次 前判定繰り返しのアルゴリズムとプログラム 2時間 第5 次 後判定繰り返しのアルゴリズムとプログラム 2時間 第6 次 本単元内容の複合のアルゴリズムとプログラムとまとめ 3時間 5 本時 (1) 本時の指導目標(到達目標) ・for 文についてのアルゴリズムとプログラムを理解しようとしているか。 [関心・意欲・態度] ・for 文を用いたプログラミングができるか。 [思考・判断・表現][技能] (2) 本時の手立て ・for 文の構文を解説する際に for 文を使った簡単な例題プログラムを交える。 ・例題プログラムのアルゴリズムと類似のアルゴリズムを示し、例題プログラムを応用してプロ グラミングをさせ、そのプログラムについて周囲で説明し合う。 (3) 本時の授業仮説 ・for 文を使った簡単なプログラムの実行結果についてアルゴリズムを意識しながら予想を立て させるとともに、自分が作成したプログラムについて説明し合う活動を取り入れることを通し て、生徒がfor 文の構造を理解しながらプログラミングができるようになるであろう。 (4) 教材 ・生徒 教科書(実教出版 アルゴリズムとプログラム)、プリント、テンプレート ・教師 教科書(実教出版 アルゴリズムとプログラム)、白板、書画カメラ、モニター 参考書(高橋麻奈著 やさしいJava 第5版)、プリント、テンプレート
(5) 学習の展開(学習指導過程) 学習内容・活動 教師の支援 指導上の留意点 教材 配当 時間 学習 形態 評価 導入 本時の目標を確認する。 「for 文を使ったプログラミン グができるようになる。」 繰り返し構造のアルゴリズ ムを示し、それに従って処 理した場合の出力結果を予 想する。 前時間の内容の定着度を机 間指導により確認する。 モニター プリント 5分 一斉 個別 ペア アルゴリズムについて 理解しようとしてい る。 [関心・意欲・態度] (プリントの記述) 展開1 for 文の構文について学 ぶ。 先のアルゴリズムのプログ ラムsample1のポイント を抑え、入力し、出力結果 を確認する。 for 文内のカウンター表記で よく用いられるi++について 解説する。 モニター プリント PC 15分 一斉 個別 展開2 sample2のアルゴリズムを 考え表現し、解説を聴く。 sample2のプログラムをア ルゴリズムに合うように考 えながら入力する。 完成した生徒はpractice1 に取り組む。 sample2のプログラムにつ いて説明し合う。 机間指導により個別対応す る。また、出来上がった生 徒には教員を呼ばせ、教員 がプログラムと出力結果を 確認する。 説明をすることで理解が深 まることを実感させる。 モニター プリント PC 10分 15分 個別 一斉 個別 個別 自らプログラミング に 取り組んでいる。 [関心・意欲・態度] (様相観察) 意図したプログラムを 作成できる。 [思考・判断・表現][技能] (プログラムと出力結 果) まとめ 中間モニターを見ながら、 for 文の構文を再度確認す る。 プリントの綴じ込み、pc の シャットダウン、机上の整 理をする。 しっかりと中間モニターを 見させるために生徒PCの 画面をロックする。 モニター 3分 2分 一斉
アルゴリズムとプログラム 授業プリント ( )番 氏名 ○繰り返し構造のプログラム sample1 次は上記のアルゴリズムのプログラムである。プログラムを入力し実行結果を確認しなさい。 sample2 1~100までの整数の合計を出力する処理のフローチャートとプログラムを作成しなさい。 (プリントの裏面) practice1 キーボードから自然数(n)を受けつけ1~n までの整数の合計を出力する処理のプログラムを 作成しなさい。 繰り返し構造(条件値判定)の構文 問 左図のアルゴリズムのプログラムを実行 するとどのような実行結果になるか予想 しなさい。 import java.io.*; class sample1 {
public static void main(String[ ] args) { int i; for(i=1;i<=10;i++){ System.out.print(“*”); } } } 始め 10回繰り返し *を出力(改行なし) for( ; ; ){ } 終わり 出力結果
アルゴリズムとプログラム
授業プリント ( )番 氏名 sample12 フローチャート用 practice11 フローチャート用