大学入試における教科「情報」の試験

現行の「大学入試」では、

  • 「基礎知識と思考力」を問う「大学入試センター試験」
  • 専門を学ぶために必要な学力を測る大学ごとの個別試験
の2種類のレベルの試験が実施されています。安倍首相は主に「センター試験」を念頭に置いていると思われますが、大学の個別試験では、すでに一部の大学で教科「情報」が試験科目として設定されています。その一例として、慶應義塾大学の2018年度入試の問題を紹介します。

知識問題

教科「情報」の試験ですので、「プログラミング」だけの出題ではありません。まずは知識問題として、法制度やコンピュータの基礎知識に関する出題がされています。
名誉やプライバシーの保護に関して、正しいものを次の選択肢から1つ選び、その番号を解答欄にマークしなさい。
  1. 他人のプライバシーを侵害した加害者は、被害者に財産的な損害が生じていない場合でも、精神的な損害について賠償責任を負う場合がある。
  2. 個人のブログは、その内容が真実でない可能性も高いと読者が認識しているから、そこに「噂話」などと明示されているゴシップ記事が書かれていても社会的評価が低下するとは言えず、名誉毀損は成立しない。
  3. プライバシーに属する事実が掲載されたウェブページが検索サイトに表示されている場合、検索サイトを運営する事業者は、問題となるウェブページのURLやリンクを削除する義務を負うことはないが、そのウェブページの表題(タイトル)や抜粋(スニペット)を削除する義務を負う可能性がある。
  4. 他人の社会的評価を低下させるような情報を電子掲示板にアップロードした場合でも、その情報が真実であれば、名誉毀損は成立しない。
  5. 新聞記事により名誉が毀損された場合でも、裁判所の判決により謝罪広告の掲載を強制することは、新聞社の表現の自由に対する重大な制約となるから、認められていない。

自信を持って正解を選ぶのは難しい問題ですが、次のように考えれば正解にたどり着けるでしょう。

  • 日本初の「プライバシー裁判」と言われる「宴のあと事件」について知っていれば、1.が正解であることがわかる
  • 「名誉毀損」は「公然と」「事実(真実であるかは問わない)を指摘」し、「人の名誉を毀損する」ことで成り立つことを知っていれば、2.も4.も間違いであることがわかる
  • プライバシーの侵害等により、「検索結果」を削除するよう求めた裁判が起こされていることを知っていれば、「義務を負うことはない」とまでは言い切れないのではないかと推測できる
  • 「表現の自由」も留保があることを知っていれば、名誉が毀損された場合に謝罪広告を「強制」することが「表現の自由に対する制約」になるとは言えないのではないかと推測できる
社会科の歴史の問題と同様、高校の教科「情報」で学習した知識をもとに推測することで正解を導き出すことができます。「一般常識」というには少し難しめの問題ですが、このような出題がなされることを知っていれば、事前に「受験勉強」という形で対策することができるでしょう。「大学入試」であるのですから、このようなレベル設定はむしろ適切と言えます。単純な知識問題ではなく、知識をもとに考えさせる問題が出題されていくと考えられます。

コンピュータに関する知識問題、計算問題

「コンピュータ」そのものに関する問題の出題も考えられます。操作法ではなく、コンピュータの特性を理解しているのかを問う問題です。
2次方程式
ax2+bx+c=0
の係数、a, b, cが浮動小数点数として与えられたとし、計算機で解を計算することを考える。
(中略)
しかしながら、係数□が他の係数に比べて非常に大きい場合には、桁落ち誤差が大きくなってしまうので注意が必要である。
このような場合には、桁落ち誤差の影響が少ない解x1を次のように求めて、……(略)……(x2を)求めることが考えられる。
本問の場合、ある条件下ではコンピュータで計算をすると結果に誤差が出てしまう、そのためには数学的にどのような対応をすればよいかを考えさせています。数学の知識(この場合であれば2次方程式)、「浮動小数点」「桁落ち」とは何かという知識、「平方根」や比などの「数」に対する感覚が必要な問題でした。このように、コンピュータを利用する際に起こりえる問題をどう解決するかを問う問題も出題されることになるでしょう。

プログラミングに関する問題

現行の教科「情報」でも「プログラミング」を扱うことがありますので、慶應義塾大学でも「プログラミング」に関する問題が出題されています。
2つの文字列がある時、片方の文字列に対して、1文字単位の挿入・削除・置換を何回行うともう片方の文字列と一致するかという回数の最小値を、その2つの文字列の間の編集距離と呼ぶ。例えば「かながわ」と「かがわ」の場合、「かながわ」から「な」を削除すれば一致するので編集距離は1である。逆方向から考えると「かがわ」に「な」を挿入するので、編集距離はどちらから考えても同じになる。「さいたま」と「あいち」の場合は「さいたま」⇔「あいたま」⇔「あいちま」⇔「あいち」なので編集距離は3である。文字列A, Bの編集距離をd(A, B)と書く。

この問題では、実際に「編集距離」を求めるためのアルゴリズム(手順)を考えさせています。大学によっては、さらにそのためのプログラムを書け、という問題も考えられるでしょう。

とはいうものの大学入試で「プログラミング」が問われる場合、多くの場合はこのようにアルゴリズムを考えさせる問題となるのではないでしょうか。海外の事例では「実際にプログラムを書け」というものもありますが、日本の場合、「大学入試では学習指導要領に示されたものを逸脱しないこと」が求められます。学習指導要領では「どの言語を教えること」という指示はありませんし、大学入試は大学で学ぶための基本的な知識を身につけているのかを見るものであるという原則に立ち返れば、アルゴリズムについて考えさせることで目的を達成することができるでしょう。

「センター試験」レベルの問題はどうなるか?

ここまで、慶應義塾大学の問題から、大学別の試験で教科「情報」が出題されるとしたらどのようなものになるのかを考えてきました。ではその前段階、どの学問を学ぶのにも必要とされる教科「情報」の基礎知識は、どのような問題で問われることになるのでしょうか。

現行の大学入試の場合、センター試験が「どの学問を学ぶのにも必要とされる教科の知識」を探るためのひとつの目安となりますが、現在のセンター試験では残念ながら普通科の課程で学んだ受験生のための「情報」の問題はありません(工業科等で専門科目として『情報』を学んだ受験生のためには『情報関係基礎』があります)。

そこで、海外の事例を参考にしてみましょう。アメリカのAP(*)という試験で出題される、「コンピュータサイエンス基礎」の知識確認問題です。

(*)AP …… Advanced Placement と呼ばれる試験。高校段階で大学の教養レベルの単位を認定するためのもの。飛び級を希望したり、難関の大学を希望したりする生徒が受験する。レポートや論文を提出するなど、時間をかけてじっくりと取り組む必要がある。ここで紹介している「コンピュータサイエンス基礎(Computer Science Principle)」は、それに加えて「知識の確認問題」がある。

ある動画配信サイトでは、32ビットの整数で動画の再生回数をカウントしている。一部動画の再生回数が32ビットで表現できる数を超えそうになったため、再生回数を64ビットの整数で表現することにした。32ビットから64ビットに変更することでどのようなことが生じるか、次の記述の中から最も適するものを選べ。
  1. カウントできる再生回数は2倍になる
  2. カウントできる再生回数は32倍になる
  3. カウントできる再生回数は232倍になる
  4. カウントできる再生回数は322倍になる

知識問題ですが、知識そのものを問うのではなく、あるシチュエーションにその知識を適用したものになっています。知識問題といえども一問一答的な学習では対応しづらいものでしょう(正解は3.です)。

あるゲームの開発者が、自身の作成したゲームのマニュアルを書き終えたところで、本来「ヒツジ」と書くべきところを「ヤギ」と書き、「ヤギ」と書くべきところを「ヒツジ」と書いてしまったことに気がついた。文中に現れる「ヒツジ」と「ヤギ」をすべて入れ替えるには、次のうちどのアルゴリズムが適切か。ただし、必要であれば、元の文中には「キツネ」という単語が現れないという事実を用いてもよい。
  1. 「ヤギ」をすべて「ヒツジ」に置き換え、次に「ヒツジ」を「ヤギ」に置き換える
  2. 「ヤギ」をすべて「ヒツジ」に置き換え、次に「ヒツジ」を「ヤギ」に置き換え、最後に「キツネ」を「ヒツジ」に置き換える
  3. 「ヤギ」をすべて「キツネ」に置き換え、次に「ヒツジ」を「ヤギ」に置き換え、最後に「キツネ」を「ヒツジ」に置き換える
  4. 「ヤギ」をすべて「キツネ」に置き換え、次に「キツネ」を「ヒツジ」に置き換え、最後に「ヒツジ」を「ヤギ」に置き換える

1.を選びそうになってしまう人も多いのではないでしょうか。1.ではすべての「ヒツジ」が「ヤギ」に置き換わってしまいます。そこで一度「ヤギ」を別の名前(ここではキツネ)に置き換え、「ヒツジ」を「ヤギ」に置き換えたあと、もともと「ヤギ」だったもの(キツネ)を「ヒツジ」に置き換えます(aとbを置き換える場合、a→c、b→a、c→bと、aを一度一時的なものに置き換えてaとbを入れ替えるというアルゴリズム)。つまり正解は3.です。確かに「考えればわかる」「特別な対策は必要ない」問題かもしれませんが、直感ではなく、行いたい作業を完遂するための「手順」=「アルゴリズム」を考える習慣があるかどうかを問うている問題といえます。なお、このようなアルゴリズムの考え方や表し方は、次期学習指導要領でも、全員が履修する「情報I」で扱うこととされています。


5×5 のマスの中を動くロボットを考える。ロボットを三角形で表し、最初の状態では一番左下のマスで右側を向いているものとする。

次のようなコードを実行してロボットを動かす。

コードを実行し終えたとき、ロボットはどの位置でどちらを向いているか、次の中から選べ。



見たことのない形式の問題ですが、Scratchなどをイメージするとよいでしょう。まず「nに3を代入する」。その上で「次の内容を3回繰り返す」。繰り返す内容は「n回前に進んだあと、左を向き、nから1減らす」。つまり全体としては「3歩前に進んで左を向き、2歩前に進んで左を向き、1歩前に進んで左を向く」となります。よって正解は1.です。

この問題も「考えればわかる」「特別な知識は必要ない」問題かもしれません。しかし全くプログラミング経験がなければ、矢印が代入を表すことを知らないかもしれません(特定のプログラミング言語によらないプログラムの書き方では、しばしば代入は矢印で表現されます。現在の大学入試センター試験で実施されている『情報関係基礎』の試験でもそのように定めています)。このような論理構造に苦労するかもしれません。その意味では、本問は「プログラミングを経験したことがあるか」「一定のルールで抽象化された記述から、何が行われるのかを読み取ることができるか」(≒プログラムを読めるか)を問う問題といえます。

これら3問はいずれも「コンピュータサイエンスの基礎」であり、「プログラミング的思考」を必要とする問題です。直前に試験対策をして乗り切る問題というよりは、長い時間をかけて身につけてきたものが問われる問題といえるでしょう。センター試験などの問題は、こうしたレベル感のものが出題されるものと考えています。

今回紹介した問題は、APを実施運営するアメリカの “The College Board” のウェブサイト上でサンプル問題として配付されています。もちろん全文英語ですが、興味のある方は挑戦してみてはいかがでしょうか。
https://www.collegeboard.org/

【次回予告】

次回から数回にわたり、過去に大学入試で出題された「プログラミング」の問題から面白いもの、挑戦しがいのあるものを紹介します。次回は「センター試験」の問題です。

Z会のプログラミング講座ラインナップ

公開日:2018/09/07