私たち教育図書株式会社は、中学校・高校の教科書や教材を出版している会社です。 教育図書NEWSは主に学校の先生や教職関係者のみなさまに向けて、教育に関する独自の記事を発信しています。すべて無料でご利用いただけます。

中学校 技術・家庭科 NEWS

中学校技術 ネットワークで問題を解決する授業のアイデア

令和3年4月の新学習指導要領の全面実施から3年目に入りました。各学校や各地区で、全面実施に合わせた題材の見直しや、指導計画の作成に取り組んでいることと思います。そんな中で、学習指導要領の内容D(2)にある「生活や社会における問題を、ネットワークを利用した双方向性のあるコンテンツのプログラミングによって解決する活動」における授業のイメージがなかなか思いつかないという声を聞きます。この数年間に、多くの附属学校や研究校で、この内容の授業づくりに取り組んでおり、題材例が少しずつ整理されてきました。この内容の学習を手軽に進められる教材も開発されています。

そこで本稿では、先行して取り組んでいる学校の実践などを交えながら、D(2)の授業のイメージをいくつかご紹介したいと思います。一つでも先生方の授業づくりのヒントになれば幸いです。
※本稿は、てくテク第6号(令和2年2月発行)の記事を加筆・修正したものです。


尾﨑誠
湘南工科大学 総合文化教育センター/教職センター
准教授


技術702・703技術分野教科書


「双方向性」に対する誤解

学習指導要領解説(p.53)によると、D(2)の内容は次のようなことを学習することが求められています。

◯メディアの複合…デジタル化された文字、音声、静止画、動画などの効果的な活用と、個人情報の保護の必要性の理解。

◯双方向性のあるコンテンツ…ユーザが入力し、プログラムで処理した結果を出力するプログラムの構想と作成。

◯ネットワークの利用…双方向性の処理の一部で、コンピュータ間の情報通信を取り入れる方法の理解。

つまり「双方向性」=「ネットワーク通信」ではないということを、まず押さえておくとよいと思います。例えば、コンピュータが「あなたの名前は?」と質問し、生徒が名前を入力すると、画面に「◯◯さん、こんにちは!」と表示される処理が「双方向性」のイメージです。これを改良して、音声や画像を利用して出力させると「コンテンツの活用」の学習になります。さらに、入力された名前を使って、インターネット上のサービス(WebAPI等)から占いの結果を得て表示する処理を加えれば「ネットワーク利用」の学習になります。このようにプログラムを少しずつ拡張してつくりながら、コンテンツ、双方向性、ネットワーク利用の仕組みや方法をスモールステップで理解できるよう、題材の展開を工夫するとよいと思います。

学習はスモールステップで

先行実践している学校の多くでは、およそ次のような流れで学習を進めています。

①プログラムの作り方の学習
プログラミング言語の使い方を練習する。

②順次/分岐/反復、変数、双方向性の学習
プログラムを作りながら、情報を処理する手順(順次、分岐、反復)を学ぶ。合わせて「変数」を扱う学校が多い。入力と出力の関係を学ぶことで、分岐の意味や、双方向性をより理解しやすくなる。

③メディアの学習
プログラムを作りながら、文字/音/画像等の扱い方とそれぞれの特性を学ぶ。

④ネットワーク利用の学習
サンプルプログラムを用いて、ネットワークを経由した送信・受信の仕組みを理解し、ネットワークを利用したプログラムの作り方を学ぶ。

⑤問題を解決するコンテンツの設計・制作
①~④を踏まえ、生活や社会の問題を解決するプログラムを設計・制作する。

⑥成果の発表・共有、学習のふり返り
問題の解決(⑤)の学習をふり返り、作品の相互評価を受けて、次の問題解決につながる考え方をまとめる。

①~⑥のような学習ステップと学習指導要領における項目との対応は学校によって異なりますが、いずれの学校でも、まずはネットワークを用いないプログラミングを通してメディアの特性や情報処理の手順を学び、その後にネットワークの仕組みを学ぶ流れが多いようです。この順序は、生徒の実態や、指導のしやすさ等によって前後します。

学習ステップ① プログラムの作り方の学習

授業の初めに、プログラミング言語を用いたプログラムの作り方を学習します。アプリを起動して、開発環境の画面を表示させます。次に「おはよう」と表示させるプログラムを入力して「実行」します。無事に「おはよう」と表示されると、生徒たちは喜びますよね! そしてその文章を好きな文章に変えて、再び「実行」します。

さらに、自分の名前を入力すると「◯◯さん、こんにちは」と表示するように改良します。入力と応答の関係を理解します(図1)。


図1 プログラムの作り方 練習の例

学習ステップ② 順次/分岐/反復、変数、双方向性の学習

例えば「数当てゲーム」や「小学生向けの計算練習アプリ」等の練習作品を作りながら、順次、分岐、反復の仕組みや変数の意味や扱い方を学びます。「数当てゲーム」ならば、最初は分岐を用いて正解と不正解に処理を分けます。次に反復を用いて回数を制限します。変数を加えたり、分岐を加えたりすると、誤答の時に「もっと大きい数だよ」とヒントを表示することもできます。

学習ステップ③ メディアの学習

②の練習作品を改良して、「ピンポーン」と音を鳴らしたり、「正解!」等の画像を表示させたりします。コンピュータはデジタルで処理するからこそ、手軽に音や画像を処理することができますし、意味のある利用の仕方を試行錯誤しながら考えやすくなります。

学習ステップ④ ネットワーク利用の学習

ネットワーク利用の仕方には、大きく2種類あります。

方法1 インターネット上のサービスから情報を得る

1つ目の方法は、インターネット上のサービス(WebAPI等)を利用するものです。例えば、ある地域の天気予報を取得したり、郵便番号から住所を検索したりするプログラムを作成します。この場合は、WebAPIのURLに生徒が入力した情報(地域名や郵便番号等)を付加して、そのURLにアクセスします。そして、返ってきた処理結果を文字や画像、音声等で表示させます。他言語に翻訳するWebAPIを併用すれば、より問題解決的なプログラムに改良できます(図2)。

対話型の生成AIを利用するプログラムは、この方法に準じて作ることができますが、利用に当たって年齢等の制約がありますので、各自治体の指示に従ってください。


図2 WebAPIから情報を取得する作品の例

方法2 複数台のコンピュータ間で送受信する

2つ目の方法は、複数台のコンピュータ同士を接続して閉じたネットワークをつくり、文字の情報を送信・受信するものです。例えば、学校行事で利用する案内アプリや、メッセージを送り合うコミュニケーション・アプリを作成します。この場合は、相手またはサーバに向けてデータを送信する処理と、相手またはサーバからデータを受信する処理の2つを作ります(図3)。


(1) 送信側と受信側の動作の例  


(2) 送信側と受信側のプログラムの仕組み
図3 複数台のコンピュータ間で通信する作品の例

授業では、まずは授業者が用意したサンプルプログラムを生徒へ配付して実行させます。そして、他機の動作と比較させながら、確かにネットワークを経由して情報が送信・受信されていることを実感させます。次に、プログラムを読み解きながら、送信と受信の仕組みを理解させます。ここでアクティビティ図等を用いて、プログラムの概要をつかませる方法も効果的です(*1)。いずれの例でも、生徒が自分でプログラムをつくりながら学ぶことで、仕組みを理解しやすくなり、後の問題解決につながりやすくできると考えられます。
(*1) 広島大学附属中学校の実践では、スクラッチで作成した簡易チャットを動作させた後、アクティビティ図を用いて仕組みを理解させていました。

学習ステップ⑤ 問題を解決する設計・制作

ここでは、設計・制作の授業プランを立てる際に、生徒の実態や授業の流れ等に合わせやすくするための2つの作戦をご紹介します。

作戦1 サンプルプログラムを改良、応用させる

まずは、④で用いたサンプルプログラムを体験してみて、生徒自身が感じた問題点を改良させるという展開が考えられます。例えばチャットの改良ならば、問題解決の例として「分かりやすく着信音を加えたい」「無言やいたずらを防止したい」「ウソの情報を見抜く処理を加えたい」といった問題を見いだして、生徒一人ひとりが学習課題を設定します。

この場合、社会における問題の解決に結びつけるために、問題を見いだす学習では「このチャットはみんながよく使っているSNSと同じような仕組みだね」「そのSNSは、社会のどのような問題を解決しようとして、プロの人はどのような処理を加えているだろうか」というように、実際に利用している事例を取り上げてから、「では、プロの人と同じように考えて、このチャットの問題点を解決していきましょう」とつなげる方法が考えられます(*2)。
(*2) 北海道教育大学附属旭川中学校の実践では、スクラッチで作成した簡易チャットで「だまし合いゲーム」に取り組みながら、サンプルプログラムの問題点とSNSの問題点とを関連付けて、問題の発見につなげていました。

作戦2 新たなシステムを構想させる

新学習指導要領の趣旨にさらに寄り添う場合は、④で用いたサンプルプログラムを改良・応用して、新しいシステムを開発させるとよいでしょう。例えば「簡易チャット」のプログラムをうまく改良して、災害時の教室間での情報共有システムや、地域のお年寄りの見守りシステム等を構想することができます。「クイズサーバー」の仕組みを応用して、Q&A方式の学校案内や、メニュー選択方式の情報検索システム等を構想することができます。もちろん、実用的なシステムにならなくても、構想したシステムの一部(モデル)を作成すれば、中学生としては十分だと考えられます。

まずD(2)の題材を見直すという段階ならば作戦1が有効です。いずれは、全ての学校が作戦1から作戦2へ移行できれば、新学習指導要領のねらいにより近づけるでしょう。

学習ステップ⑥ 成果の発表・共有、学習のふり返り

⑤で取り組んだ問題解決の経験をふり返り、生徒一人ひとりが学んだことをまとめていきます。その際に、問題を解決するために設計段階で考えたことや、そのうちプログラムを作成して実装できたことや難しかったこと、プログラムを実行して友人からもらったコメント等を整理して、次の問題解決の機会にはどのようなことを考慮すべきか考えてまとめます。

以上の学習ステップ①から⑥まででご紹介したように、D(2)の学習は、プログラミングを通して生徒一人ひとりの問題解決力を育てるように、スモールステップで授業を組み立てる方法が有効と考えられます。

日本語プログラミング言語は、中・高接続の有力な選択肢

本稿の授業イメージでは、日本語で記述するプログラミング言語として「なでしこ」「ドリトル」「スモウルビー」の3つを例にしています。学習内容を工夫すれば、いずれの言語でも同様の授業を展開することができます。

ところで、小学校では「スクラッチ(またはスモウルビー)」や「ビスケット」のように図で表現するプログラミング言語を用いることが多いと思います。高等学校では「VBA」「JavaScript」「パイソン(Python)」「ノードジェイエス(node.js)」のような、アルファベットで記述する言語が想定されます。すると「なでしこ」や「ドリトル」のように、日本語で記述するプログラミング言語は、小学校や高等学校との接続を考えたときに、有力な選択肢の一つになり得ると考えられます。

一方で生徒の多くが画面を指でなぞって入力する方法(フリック入力等)に慣れている実態もあるため、「なでしこ」や「ドリトル」の実践校では、キーボードを用いた漢字変換や記号入力に手間取っているという声を多く聞きます。タイミングを見て、記号入力の仕方を教えるとよいでしょう。

豊かな発想で授業づくりを

プログラミング言語にはそれぞれ得意・不得意がありますから、授業者が思い描く学習に適するプログラミング言語を見つけるのが望ましいでしょう。しかし、まだ「この言語でなくてはならない」とか「こう扱わなくてはならない」と思いこまず、豊かな発想で授業づくりに取り組む時期でもあります。大切にしたいのは、生徒たちが将来どのようなプログラミング言語に出会っても対応できるよう、どのプログラミング言語にも共通する仕組みや考え方を学ばせることです。そのために、各学校の実態や生徒の実態に応じて「生徒が自分でプログラムを考えて作れるほどに育つ授業」や「生徒が自分でプログラムを作って問題を解決できる力が育つ授業」を目指した授業改善や授業研究が、より一層進むことを願い、本稿が何かのお役に立てば幸いです。

【関連記事】

中学校技術分野で展開されるプログラミング教育: 小学校から高等学校までのカリキュラム

中学校技術の情報教育 双方向性のあるコンテンツについて考える


技術702・703技術分野教科書