高等学校「情報科」セミナー:高校の現場から見る大学入学共通テスト「情報」セミナーレポートVol.2

「情報Ⅰの教科書に関する分析とシミュレーションの授業実践」/愛知県立小牧高等学校 情報科 井手広康先生

セミナーレポート後編は、愛知県立小牧高等学校・井手広康先生の講演と事例発表。各社の「情報Ⅰ」の教科書の内容比較、およびそれをふまえた共通テストへの対応を考えます。また、共通テスト試作問題で出題された「シミュレーション」に関する問題を用い、実際の授業で実践。そこから見えた課題や手ごえについて語っていただきます。

共通テストに向け、どのプログラミング言語で学ぶべきか

2009年に情報科教諭として着任した井手先生。麻雀が大好きで、博士論文のテーマは「全自動麻雀卓の牌がしっかり混ざる方法」だったというユニークな経歴の持ち主です。「結果論ながら、解決したい身近な問題を見つけてシミュレーションしていた」と笑います。しかしそれは、今日の情報科改革において育成を目指す力の要諦。後述する授業実践でも、生徒たちのそうした力を育んでいるようです。

愛知県立小牧高等学校 井手広康先生

冒頭、「教科書の比較」に言及した井手先生。その前提認識として、多くの先生方を悩ませている「共通テストを見据え、どのプログラミング言語を使えば良いのか」に関して口火を切ります。教科書によって、使用される言語が異なるためです。

しかしプログラミングに関する問題は「実は(共通テスト前身の)センター試験時から出題されていた」そう。「数学の『情報科基礎』で出題されてきました。じゃあ『どの言語?』ということになりますが、具体的な言語ではなく、センター試験用に作られた『センター試験用手順技術標準言語(DNCL)』を使ってきたんです」。 2020年11月の共通テスト「情報Ⅰ」の試作問題、2021年3月のサンプル問題でも同様にDNCLで記述されており、共通テスト本番でもDNCLが用いられると見て良いでしょう。どうも、このあたりがヒントになりそうです。

センター試験用手順技術標準言語「DNCL」

各言語と、DNCLとの親和性に着目

この状況下で、全国の高等学校へ教科書の見本が送付されたのが2021年度の始めごろ。そこで井手先生はそのすべてを検証し、採用された言語を分析。合計6社から13冊が発行され、Python、JavaScript、VBA、Scratchの四つが使われていることが分かりましたが、他にも「ある特徴」が見られたそう。

「一つの教科書で、複数の言語を併記しているものが非常に多いことです。例えば東京書籍さんであればPython+JavaScript、あるいはPython+Scratch。数研出版さんであれば、Python+JavaScript+VBAといった具合です。一方で、実教出版さんのように、四つの言語それぞれに特化して、4種類の異なる教科書を作られた会社も。各社とも工夫を凝らして、幅広い学力層の生徒たち、あるいは多種多様な学校の実情に対応できるように考えてくださったのでしょう」。

各教科書と、使用言語の比較一覧表

そこで気になるのが、共通テストではDNCLが用いられるであろうということです。実際に授業で扱う言語との間にどのような違いがあるのでしょうか。井手先生は、これについても比較を行っています。

「まず Python。DNCL自体がおそらくPythonをベースにしていますので、ほぼ同じように対応できます。異なる点は『繰り返し』の表記くらいです。続いてJavaScriptは、言語の1行1行までは対応できていないものの、違いはブロックの表記やコロンの付け方くらいで、さほど大きな差異はないと感じます。違いはやはり『繰り返し』に関する表記ですね。ここさえ押さえておけば、特に違和感なく共通テストに対応できるはず。 VBAもJavaScriptとほぼ同じです」。

一方で、気を付けたいのはScratch。「そもそもScratchはブロック型ですので、違っていて当たり前。もちろんScratchが悪いわけではありませんが、これを中心に授業をやるのであれば、別途DNCLでの演習をしておかないと入試への対応は難しいのではないでしょうか」と注意喚起します。

DNCLとPythonの比較

DNCLとJavaScriptの比較

DNCLとVBAの比較

DNCLとScratchの比較

どの言語を選ぼうとも、共通テストを受けるなら意識したい15項目

では、言語の傾向がつかめたところで、プログラミングのどのような要素が出題されるのでしょうか。試作 問題とサンプル問題を分析してみたところ、全部で15の要素に分類できたと言う井手先生。「具体的には、変数・代入・インクリメント・メッセージ・異なるデータ型の結合・算術演算子・比較演算子・論理演算子・if文・for文・while文・入れ子・配列/リスト・添え字・関数です。これを各教科書に照らし、記載あるいはその説明があるかを調べてみた結果がこちらです(下図参照)」。

各教科書における、共通テスト出題項目(予想)記載状況

情報科の学習におけるプログラミング言語は、プログラミングの考え方やアルゴリズムを学ぶためのツールであることが基本。その前提に立つなら、どの言語を使っても問題ないというのが井手先生の考えです。しかし、共通テスト受験を念頭にするのであれば、この15項目は押さえておきたいところ。そのため、各教科書への記載の有無については意識しておきたいと指摘します。

中でも要注意は「入れ子」。ほとんどの教科書に記載はあるものの、入れ子にもいろいろあります。「例えば入れ子の中に入れ子があるとか。実際、試作問題とサンプル問題では 三重の入れ子が使われていました。このあたりは、教科書以外にも色々題材を取り上げて教える必要があるでしょう」。

ただし、上記比較表で△や×が多いからと言って、その教科書がダメだというわけではないと付言する井手先生。言語にはそれぞれの 得意分野・不得意分野があるだけのことで、それを理解した上でDNCLとの差分を意識した授業を作っていくことが大事だと言います。

試作問題「シミュレーション」を、実際の授業で解いてみた

後半は、シミュレーションの授業実践について。試作問題は全8問からなりますが、このうちの第4問「交通渋滞シミュレーション」、国道と県道が交わる交差点での渋滞軽減を、赤信号・青信号の各点灯時間をシミュレーションして、適切な時間配分を導き出すというモデル化を実際の授業で行った事例です。

交通渋滞シミュレーションに関する試作問題

大まかな授業(2時間)の手順は、「①まず一度サンプル問題(第4問)を解かせてみる」「②各自が交通渋滞シミュレーションを実施し、最適な赤信号・青信号の各点灯時間について考察する」「③グループでシミュレーション結果を共有し、結論を導く」「④再度サンプル問題(第4問)を解かせてみる」というもの。

エクセルで作成したシミュレーションファイル

シミュレーション授業プリント

その結果、生徒たちから非常に興味深い感想が聞かれました。まずシミュレーションに対しては 「青信号と赤信号が30秒と60秒、 10秒と20秒というように、比率は全く同じでも結果が全く違うことがおもしろかった」、さらには「1回目は勘で解くだけだったが、実際にシミュレーションをしたことでグラフの意味が理解でき、2回目は解くことができた 」という意見もありました。

一方で「実際の信号も、同じようなやり方で時間が設定されているのだろうか」「普段目にするあの信号は、なぜあのような時間設定になっているのか。もっとこうしたら良いのではないか」と、シミュレーションを用いた課題解決そのものへの関心が見える感想も。

井手先生は言います。「こういう気づきこそ大事だと思うんですね。シミュレーションをやって『ハイ、終わり』ではなく、そこから身近な社会や現象に目を向ける感性を育成できたことが、非常に良かったと感じる点です。まさに新しい学習指導要領でも示されている『問題を発見する力』だと思います」。

友達と協力しながら、交通渋滞シミュレーションに挑む生徒たち

生徒たちから聞かれた感想の一例

情報科がけん引しながら、子どもたちの読解力を伸ばそう

サンプル問題の第4問「交通渋滞シミュレーション」は全3問で構成されており、仮に3点満点とすると、最初に解いたときの平均が1.1点、授業後で1.6点という結果に。「上昇してはいるものの極端な差異がなかったところを見ると、生徒たちの現状レベルに比して少し難しかったのかなと。アンケートでも『難しかった』と答えた生徒が目立ちました」と、今後に向けての改善点も見えてきています。

しかし、それ以上につかんだ手ごたえは大きいと言う井手先生。「これからの子どもたちは、グラフや問題文から何かを読み取る読解力を身に付けていかねばなりません。ただしそれは、モデル化とシミュレーションの単元だけ、ひいては情報科だけで身に付くものではないはず。情報科が中心となりつつ、学校全体のカリキュラムマネジメントの中で行うべきものだと思いますと」と呼びかけます。どうやら先生も、生徒たちと一緒に「問題発見」をしていたようです。

関連記事

高等学校「情報科」セミナー:高校の現場から見る大学入学共通テスト「情報」セミナーレポートVol.1

講演アーカイブ動画視聴受付中

井手先生の講演について希望者にアーカイブ動画を公開しております。視聴を希望される方は下記よりお申し込みください。

高等学校「情報科」セミナー 高校の現場から見る大学入学共通テスト「情報」(アーカイブ動画)