プログラミングの概要(3時間)

単元: 社会と情報「問題解決 4.分析のための工夫」(p.122-125)

本時の位置づけ

プログラミングはコンピュータを能動的に活用し、個人の活動を効率化するための手段として特に有用である。 また、限られた文法の範囲内で正しく命令を組み合わせるプログラミングを通して、生徒の論理的思考力や情報伝達能力の涵養が期待される。

教材観

コンピュータを用いて処理を行う最も基本的な利点は、プログラムの記述による自動化である。 命令を書き並べたプログラムを事前に用意してコンピュータに読み込ませることで、人間が一つ一つ機械に命令せずとも、所望の処理が実現される。 自動化の利点を享受するためには、コンピュータの内部動作に対する適切な理解に基づき、逐次・選択・反復を組み合わせてプログラミングを行うことが必要となる。

生徒観

西京高校の生徒は、課題への取り組みや他の生徒とのコミュニケーションなど、スマートフォンやタブレットPCなどのコンピュータを利用する機会が多い。 一方で、コンピュータの動作に関する理解が不十分で混乱したり、コンピュータの能力を十分に活用できていなかったりする生徒も一部にみられる。 そのため、コンピュータを用いる利点や、コンピュータの基本的な内部動作を理解することが必要である。

指導観

以上より本時では、座学でコンピュータの内部動作を理解させつつ、自動化の便利さを体感できる実習を行う。 座学では、Neumann式コンピュータの発明に寄与したTuringとNeumannの業績を紹介すると共に、Dijkstraの構造化プログラミングに基づいてアルゴリズムの概念を示す。 また実習では、コンピュータに不慣れな生徒でも自動化の恩恵を実感できるよう、初心者でも簡単に扱えるビジュアルプログラミング環境のScratchを用いる。 オブジェクト指向プログラミングのメッセージ交換と、逐次・選択・反復の組み合わせを理解できる例として、簡単な自動運転プログラムを作成する。

本時の目標

  • コンピュータの特徴と自動化の利点を理解し、処理を適切に自動化できる。
  • 逐次・選択・反復を組み合わせて、機械や他者が実行できる形で手順を表現できる。

指導計画

1時限目

sequenceDiagram participant T participant S participant PC Note left of T: 導入(5分) S->>PC: PCを起動する S-->>T: PCの起動を確認する T->>S: 本時の内容を伝える S-->>T: Scratchを導入したか確認する Note right of S: PCの準備状況に配慮する Note left of T: 展開: オブジェクトの作成(15分) T->>S: Scratchの起動方法を説明する S->>PC: Scratchを起動する PC-->>T: Scratchの起動を確認する T->>S: オブジェクトの作り方を説明する S->>PC: 車のオブジェクトを作る Note left of S: 塗りつぶした部分がオブジェクトとなる\nので、背景を塗らないよう注意する PC-->>T: オブジェクトの作成を確認する Note left of T: 展開: オブジェクトの操作(15分) T->>S: オブジェクトに対して行える命令を説明する S->>PC: 各種命令を実行する PC->>S:車が動くことを確認する S->>PC: 命令を並べたスクリプトを作る PC->>S: 逐次処理を実行する Note left of S: スクリプトに並べた命令は、並列でなく\n直列に実行されることを説明する S-->>T: 逐次処理を理解する T->>S: スクリプトを反復実行する方法を説明する S->>PC: スクリプトを反復実行する PC->>S: 反復処理を実行する S-->>T: 反復処理を理解する Note left of T: 展開: オブジェクト間のメッセージ交換(10分) T->>S: オブジェクト間のメッセージ交換を学ぶことを伝える S->>PC: ハンドルのオブジェクトを作る S->>PC: ハンドルの向きに応じて車が曲がるよう、スクリプトを修正する PC->>S: オブジェクト間通信を実行する S-->>T: メッセージ交換に基づくプログラミング手法を理解する Note left of T: 展開: プロジェクトの保存(5分) T->>S: プロジェクトの保存方法を伝える S->>PC: 作成中のプロジェクトを保存する Note left of S: 休憩中に問題が生じないよう、\n1時限目の最後に行う PC-->>T: プロジェクトの保存を確認する

2時限目

sequenceDiagram participant T participant S participant PC Note left of T: 展開: 自動運転プログラム(10分) T->>S: より自動的に車を運転できるよう、車が道路から外れないようにプログラミングすることを伝える S->>PC: 道路のオブジェクトを作る Note left of S: 車が道路上を動けるよう、道路は\n幅を広くし、急カーブがないようにする S->>PC: 車の前方に、左右異なる色でセンサーとなる点をつける S-->>T: 車が道路から外れないためには、道路から外れた側のセンサーと反対側に曲がる必要があることを理解する Note left of T: 展開: 自動運転プログラムの実装(20分) T->>S: 片側のセンサーが道路から外れたときの処理を説明する S->>PC: スクリプトに条件分岐を追加する S->>PC: もう片側のセンサーについて同様の処理を作る PC->>S: 車が道路から外れず動くか確認する Note left of S: 車が道路を外れるときは、転回\n方向が逆でないか確認させる S-->>T: 選択処理を理解する Note left of T: 展開: 自動運転プログラムの実装(10分) T->>S: オブジェクトを複製する方法を説明する S->>PC: 車のオブジェクトを複製する PC->>S: 複数の車を自動運転する Note left of T: 展開: 実習の総括(10分) T->>S: プロジェクトを提出させる S->>PC: プロジェクトを上書き保存して提出する PC-->>T: 提出状況を確認する T->>S: フローチャートの習熟度を確認し、中学で習った生徒には復習するよう伝える T->>S: 次回はプログラムの定義を説明し、フローチャートによるアルゴリズムの表現を行うことを伝える

3時限目

sequenceDiagram participant T participant S participant PC Note left of T: 展開: プログラム(15分) T->>S: プログラムの定義を述べ、命令の列がプログラムであることを伝える T->>S: プログラム内蔵方式のコンピュータについて、TuringとNeumannの功績を示して説明する T->>S: オブジェクト指向プログラミングの概念を、前時の実習と関連付けて説明する S-->>T: 行事などの「プログラム」とコンピュータ上のプログラムが本質的に同じことを理解する Note left of T: 展開: アルゴリズムとフローチャート(30分) T->>S: アルゴリズムの定義を伝え、人間にとって見やすい形で可視化したものがフローチャートだと伝える S->>S: 自動運転のアルゴリズムをフローチャートで表す Note left of S: プログラムをそのままフローチャートに\n示すのではないことを注意する S-->>T: 構造化プログラミングと、フローチャートによる逐次・選択・反復の表現を理解する Note left of T: 総括(5分) T->>S: プログラムから抽象化した部分を示しながら、自動運転のフローチャートを確認する T->>S: 次回はVBAの実習に先立ち、表計算ソフトの実習を行うことを伝える

results matching ""

    No results matching ""