第10回全国高等学校情報教育研究会全国大会(東京大会)

大学入学者選抜改革推進委託事業

「情報学的アプローチによる『情報科』大学入学者選抜における評価手法の研究開発」 の紹介

⼤阪⼤学 ⼤学院情報科学研究科 萩原兼⼀先生

2025年春の大学入学者の選抜に向けて

表題の事業は、文部科学省大学者選抜改革推進委託事業という形で、大阪大学が企画、東京大学と情報処理学会が連携して取り組んでいます。今回はこの事業の紹介をいたします。

 

今私の大学で、講義でいろいろな説明をして、学生に「これどう思う?」と聞くと、間髪入れず「わかりません」と答える人が少なくありません。恥ずかしさもあってそういう反応をしているのかもしれませんが、例えば卒業研究のようにいろいろ試行錯誤をしながら考えをまとめあげていくことが求められる場面でも、それができない人もいます。ですから、正解を出すこと以外にもいろいろ考えることができる学生が欲しいというのが、大学の偽らざる本音です。

 

今回お話しする内容は、2022年から高校で新しい学習指導要領が学年進行で実施され、2022年度に入学する高校生が2025年に大学入試を受験しますが、このタイミングでの大学入試に関するものです。

 

新学習指導要領では、共通必履修科目として「情報I」があり、選択科目として「情報II」が設置されることになっています。そして、いずれ何らかの形で情報入試が入ってくると言われています。その形は、数学や理科のように独立した「情報科」という科目の入試になるかもしれないし、あるいは他の科目の中に情報科の内容が入ったような試験になるかもしれませんが、まだ詳細はわかっていません。

 

知り合いの数学の先生には、「情報科で数学のように、ちゃんとした入試問題を作ることできるのか」と言われますが、確かに入試問題としてきちんと選別機能を持つようなレベルの問題を作ることができるのかという点で、疑問を抱かれている可能性もあります。そうなると、情報科単独で試験科目とするのは難しいかもしれない。しかし、我々は決してそのようなことはない、数学のようにきっちりした出題ができるということを示していく必要があります。

 

文部科学省事業の概要

この文科省の事業では、大学の入学者選抜で、「知識・技能」「思考力・判断力・表現力」「主体性・多様性・協働性」の学力の三要素を多面的、総合的に評価したいと考えています。この事業については、「高大接続改革について」というタイトルで、文部科学省高等教育局大学振興課長の塩見氏の資料(※)に詳しく説明されています。

 

高大接続改革について

 

※クリックすると拡大します

 

文科省は、高大接続改革の中で、大学の教育の改革、高校の教育の改革、大学入学者選抜改革(いわゆる大学入試の改革)という三つの大きな改革を行います。その中で、入試に関しては、先進的評価手法の共同開発と共通テストの改革という二つについて、様々な研究開発をします。そして、本事業はこの先進的評価手法の共同開発にあたります。

 

※クリックすると拡大します

 

この事業の背景課題で、「現状では各大学の入学者選抜において、思考力等や主体性等の把握評価が十分に行われていない」と言い切られています。これは、大学の先生方は気を悪くされるかもしれませんが、現状では知識・技能は頻繁に出題されてよく評価されているけれど、思考力や判断力、表現力といったものを試す問題はあまりないですよね、ということを指摘しているわけです。

 

また、この事業の公募要領には、この事業の成果として具体的な評価手法を構築し、その成果を全国の大学に普及することにより、各大学の入学者選抜改革を推進するということを目指す、ということが書かれています。

 

今までとは真逆の入試問題もOK?

さらに、「解は必ずしもユニークでなくてもよい」ということも言っています。つまり、いろいろな問題を扱ってもよい、逆に、積極的にそういうのを扱いなさい、ということなのですね。今までの入試では、解がユニークではないということになると、出題ミスと取られるくらいでしたから、まさに真逆になるわけです。

 

この事業の対象分野は、図の通りです。このうち人文社会分野、理数分野、情報分野に関しては、思考力・判断力・表現力を評価するテスト問題を開発することを研究します。

 

もう一つの「主体性を持って多様な人々と協働して学ぶ態度」というのは、先ほどの三つとは別途開発してくださいということになっています。

 

ただし、人文社会がいわゆる国語と社会の二つに分かれました。それぞれの代表校は図の通りです。

 

3つの柱は「思考力・判断力・表現力を測る」「CBTのシステムを作る」「CBTだからこその問題を考案する」

ここからは我々のプロジェクトのお話です。この事業の第1の柱は、知識・技能だけでなく、思考力・判断力・表現力を評価し、解もユニークでないものも含む、情報科の試験問題を開発することです。

 

※クリックすると拡大します

 

第2の柱は、その試験をコンピュータで実施する、いわゆるCBT(Computer Based Testing)のためのシステムを試作する。

 

そして第3の柱は、このCBTならではの問題を開発をしたい、ということです。CBTで行うのであれば、紙ベースで行うよりも必ず思考力、判断力を問う問題の幅が広がるはずです。このような三つの柱を軸として研究しています。

 

スケジュールとしては、2016年の10月からスタートして、実質2年半のプロジェクトとなっています。第1の柱である思考力・判断力・表現力を評価する作問の研究は、最初から、プロジェクト期間を通して最後までずっと行うことになる予定です。また、問題を考えるときの指標になるものとして、この思考力等の定義やルーブリックに関する研究も最初から始めています。

 

それぞれの「柱」の具体的な目標

第1の柱に関しては、基本的には思考力・判断力・表現力を評価する入試問題を検討・作成するということが課題です。最終成果としては、各大学が作問・評価をするための作問方法を体系化し、問題集や作問マニュアルを作る、そして問題を作るためのベースになるルーブリックを作ってそれらを提供することが目標になります。

 

 

第2の柱のCBTの開発については、初年度である2016年度に、短い期間で開発する必要があったので、とりあえず、今まで情報入試模試で行ってきた紙ベースのものをコンピュータで実施できることにプラスアルファの機能を付けたバージョン1というものを作り、それを用いて今年(2017年)7月末と8月に東京大学と大阪大学で模擬試験を行いました。その採点を、情報処理学会の情報入試委員会が行い、このあといろいろな分析をします。

 

これと同時に、第3の柱、すなわちCBTならではの試験問題の開発をしつつ、それが動くようなCBTの機能をさらに拡張して開発するということを、今年から来年にかけて実施していきます。

最終的には、いわゆるCBTシステムの作成、およびそれを使いたい学校が利用できるようなマニュアル作成までできればと考えております。

 

試験問題を作るために思考力・判断力・表現力を定義付ける

「思考力・判断力・表現力」を評価しなさいと、と言われてはいますが、それではそれらの定義とは何でしょうか。日本語で聞く限り、誰もこの言葉に疑問はない。しかし、この能力を評価しなさいと言われると、何を評価したらよいのかについては曖昧で、誰もが悩むわけです。

 

そこで、現行の情報科の学習指導要領解説を見ると、非常によいことが書いてあります。

 

「情報の科学」の「問題解決とコンピュータの活用」の「ア 問題解決の基本的な考え方」には、「記述させるなどして、問題を明確化することが大切である」、つまりブレークダウンしたり定義したりするということが大事だよ、というわけです。思考力と言われてもわけがわかりませんが、ブレークダウンしてこういうことであるということを作るといいよ、ということです。

 

さらに、「生徒の身の回りから具体的な問題を発見し」とありますが、試験問題の場合は、発見するまでもなく、問題そのものがすでに生徒の目の前にあります。

 

そして、先ほどお話しした思考力・判断力・表現力の定義です。これについては、情報入試研究会の委員が定義のたたき台を作り、それをもとにいろいろな議論している状況です。

 

図中の「バズワード(buzzword)」という言葉は、実際には定義や意味が曖昧な用語という意味ですが、これを定義しなければ議論が始めることができないですね。

 

「情報」自体がバズワードのようなもので、おおむねは合意できるのだけど、細かいところの定義付けができない。そういうところから、思考力・判断力・表現力というのは何だろうかということを検討しました。

 

まず、思考力とはどういうことであるということを恣意的に定義しました。これで完璧であると思っているわけではありませんが、とにかく思い付くものをまとめたという形です。現時点で思考力は四つに分かれています。

 

Trというのはreadingのrの略で、自分にとって必ずしもなじみのない記述を読んで、意味を理解する力です。

 

Tcはconnectionのcの略で、一見関連がわからないところから結び付きを見出す力です。

 

Tdはdiscoveryのdの略で、直接に示されていない事柄を発見する力です。

 

Tiはinferenceのiの略で、事項・事柄の集まりに対して推論を適用する力です。Tc、Tdはそこで発見した結び付きや発見がTdやTiに活かされることにもなります。

 

 

判断力(Ju:judgment)は、優先順位付けを含めて複数の事柄の中から、示された基準において、どれが上位あるいは下位かを見出し、並び替える能力、と定義しています。その基準としては、いわゆるコンピュータの世界であれば、命令文の個数や実行時間などが該当します。制約条件なども基準となりえます。倫理的なことを基準とする場合は、時代とともに何を重要視するかということが変化しますが、そういう判断や順位付けができる力を判断力としているわけです。

 

表現力(Ex:Expression)の定義は、与えられた基準において有用な表現を構築できる力としています。定義としてはこのスライドのように書きましたが、情報科では、実際にプログラムを書くことも、表現力の大きな観点だろうと考えています。

 

 

我々が考えた思考力・判断力・表現力の定義が、世の中で一般に言われているものと相容れなければ問題なので、中央教育審議会の教育課程部会のレポートなど世の中に出ている他の定義と照合し、整合性があることを確認しました。

 

 

さらに、高校でも大学でも思考力・判断力・表現力を育てる教育を行っているはずですが、本事業で定義したものと整合しているかということは、非常に気になるところです。高校ではこんなことはしていない、あるいは大学ではこんな力は必要ない、ということがあれば、それはまた考え直さなければならないからです。入試という、高校と大学との接続部分で、双方の整合性がまた完全に取れていません。本日は高校の先生が多くいらっしゃいますので、ぜひご意見をいただければと考えています。

 

今までの入試問題は、本当に思考力・判断力を問うていなかったのか、ということが分からなかったので、情報入試委員会で過去4年行ってきた「情報入試全国模擬テスト」で出題した試験問題を分析してみました。これは解答用紙に解答するタイプの試験でしたので、その試験をCBTでそのまま流してしまうのもいかがなものか、とも考えました。

 

※クリックすると拡大します

 

上表の黄色い網がかかっているところが知識・技能を問うている内容で、青い網が思考力や表現力を問うている問題です。つまり、今まで作ってきた問題でも、思考力・判断力・表現力を測っていた、ということを確認しました。

 

生徒の成長を測るためのルーブリックを作る

次にルーブリックです。ルーブリックというのは、いわばある観点での生徒の成長の具合・熟達度のようなものです。これを作って、入試問題作成と関連付けようと考えました。

 

こちらが次期学習指導要領の情報Iと情報IIの内容ですが、その中に例えば情報Iには大きく四つの内容があり、左側にそれぞれキーワードとしてタイトルが掲げられています。このキーワード的なものをルーブリックの観点として考えています。

 

 

今現在、下図にある13分野が、このルーブリックの観点と考えています。

 

よく体力測定などでこのようなチャートがありますが、このような十三角形の軸がプログラミングやモデル化といった分野名となり、チャートの中心に近いところは、知識・技能の程度のレベルで、外側に行くほど思考力・判断力・表現力があるレベルを表現していると考えています。

 

例えば、プログラミングのルーブリックを考えると、大きく4レベルに分かれています。

 

第1レベルでは、与えられたプログラムの構文が認識できる、プログラムの動作をトレースできる、というところです。第2レベルは、プログラムを他の人に説明することができる、あるいは異なる目的に沿って修正することができるレベルです。そして第3レベルは、与えられたアルゴリズムをプログラムとして表現できる。さらに第4レベルでは、アルゴリズムを与えられなくても、「こういうのをプログラムしてほしい」という課題が与えられればそれからアルゴリズムを考えて、さらにそれをプログラムに書き表すことができる、というレベルになります。これはかなり高度になりますね。さらに、与えられた何らかの尺度でより良いプログラムが書くことができるというのは、もっと高いレベルです。こういうことを、他の項目についてもルーブリックとして定義していきます。

 

これを先ほどのTcやTd、Exといった項目と関連付けたものが下の図表になります。このようなルーブリックを他の項目でも作って、ルーブリックをベースに評価する、あるいは問題を作るときに使いたいと考えています。

 

※クリックすると拡大します

 

 

CBT~プロトタイプの作成、試行テストを踏まえてさらなる機能の向上を図る

次に、CBTシステムの作成につきまして。プロトタイプを作る段階で、世の中にあるいろいろなCBTシステムを調査しました。その調査でわかった特徴的なことは、小さい問題に対して四つほど選択肢があって、そのうちどれが最適かを選ぶというタイプの問題がかなり多いことです。

 

 

小問同士は基本的には独立していて、次の問題とは基本的には関係ないという設定が多いです。これはいわゆるIRT(項目応答理論)と呼ばれる形式で、いくつかのレベル毎に多数の問題のプールがあって、そこからランダムに出題されるというものです。ですから、人によって出てくる問題が違います。

 

また、解答結果によって次に出てくる問題が違うというタイプもあります。ある問題に正解したら次はこんな問題が出てくる。不正解だったら別の問題が出る、という、いわゆるアダプティブ(適応)型と呼ばれるタイプがあります。

 

そして、医療や医学、薬学系など医療系大学間共用試験では、一つの状況で複数の問題を後戻りすることなく順次回答させ、あるレベルまで到達しないと次のレベルにいけない形にして全体的な理解度を測るタイプの問題が、特徴的なものとしてありました。

 

これらは、よく視力検査で使う方法、つまり見えるか見えないか、右が開いているのか左なのか、ということをレベルを上下させながらどのあたりまで正解できるかを見て、だいたいこのレベルですね、ということを測るタイプのものに近いと思います。視力検査ならば、結果に対してたいてい誰も文句は言わないでしょう。つまり、これらは資格判定には向きますが、日本の大学入試に向くかというと別の問題だと思います。

 

 

このようにいろいろなCBTシステムを調査してきて、また情報入試委員会で作った情報の過去問も、比較的思考力を問うている問題もありましたので、2017年度の模擬試験用の試行として、これらの過去問をコンピュータ上で実施できるような機能を、CBTとして実装することにしました。規模としては何千・何万という数ではなく学校でボランティアの学生が実行できる程度の人数規模で、パソコン、キーボード・マウスで解答でき、Webブラウザで動くシステムとして作りました。

 

 

実際の画面イメージは下図です。今までよくあるような、あてはまる答えを選んでいくものです。他には数字や文字列を入力するタイプの問題もあります。文字列と言っても数十文字ぐらいの、それほど長いものではありません。

 

また、プログラムの設問で我々がよく使うのが「短冊型」というもので、構文の書かれた短冊をいろいろ動かして選んでいく、という問題もあります。この短冊型は、他のCBTシステムにはないと思います。

 

※クリックすると拡大します

 

今回の模擬試験は、阪大の文学部・人間科学部・基礎工学部情報科学科、そして東大の1年生を対象にボランティアを集めて、7月末から8月上旬に実施しました。受験者数の内訳はスライドの通りです。阪大内にCBT用のサーバーが置いてあります。サーバーの負荷は大したことなかったので、このCBTシステムを実装している人の判断では、このような設問ならば数百人のレベルの入試は問題なくできるだろうということでした。

 

高校現場の先生方の意見を取り入れていくために

このプロジェクトの成果の普及に向けた活動です。3月16日に名古屋大学で行われた情報処理学会の全国大会このプロジェクトに関する企画セッションを行いました。

 

また、3月20日には、本プロジェクトのシンポジウムを大阪の梅田で実施しました。こちらは高校の先生方に向けた内容でしたが、満席でお断りしなければならないほどの盛況でした。これらの会合の詳しい状況は、河合塾の「キミのミライ発見」(※)で紹介されていますので、興味のある方はご覧ください。

 

「思考力・判断力・表現力を評価する大学入試

~次期学習指導要領による大学入学者選抜改革に向けて」

 

 

今年度は、先ほどの第1回の続きの第2回のシンポジウムを2017年11月26日に大阪学院大学で実施します。この他に、2017年9月12~14日に東京大学で開催されるFIT2017(第16回情報科学技術フォーラム)、2018年3月14日午前開催の第80回情報処理学会全国大会(早稲田大学)のセッションでも本事業の進捗を報告します。また、2017年10月28日に早稲田大学で開催するジョーシンでも、意見交換会も実施します。

 

 

今年度以降の課題に関しては、主に第3の柱である、CBTならではの出題をベースに考え、それを実施するためのシステムの機能の強化や、より良い問題作成が目標です。最終的に、このCBTシステムによって、東大と阪大で行っている模擬試験を、協力していただける大学があれば実施しようと考えています。また、規模のレベルはありますが、いずれは高等学校等の期末試験的なものでもこのCBTシステムを使っていただく計画もしています。

 

ルーブリックを踏まえたプログラミングの発展的な活動展開の例

最後に、先ほど「プログラミング」分野のルーブリックを作っているというお話をしましたが、それに沿って具体的にどのように問題を作る例を作ってみました。

 

まず、2-2のプログラムを修正するというようなことに着目して、正整数が与えられた時、最初にそれが素数かどうかを判定するという問題を与えます。

 

そして、それをベースに、与えられた正整数を素因数分解するものに修正するという問題です。

 

素数かどうかの判定アルゴリズムを、学生は基本的には知っているはずですが、それをPASCALというなじみのないプログラム言語で書いてあるものを見て、プログラムとしてある程度理解できるかというものです。

 

これが素数判定のプログラムです。どのような構造になっているかという構文が理解でき、最後のanswer という変数で、answer=1となれば素数、answer=0であれば素数ではない、と判定しています。

 

さらに、効率のよくない(無駄に多く実行される)ループを修正する、ということを行えば、表現力という点でより高いレベルを実施していることになります。

 

また、ある整数Nに約数があるとすれば、その約数はルートN以下であるというのは数学的知識ですので、そのことを使ってループの条件を書けば、さらに効率のよりプログラムすることができます(下の図1)。

 

また、平方根を求める標準関数が使えなかったなら、divisor(約数)を2乗して、それがNより小さいことを判定すれば、平方根を求める標準関数を使わずともできます(下の図2)。

 

このように、プログラムをどんどんブラッシュアップしていくことができます。

 

   図1

   図2

さらに、素数判定プログラムを参考に素因数分解を求めるプログラムを作る作業が下図です。例えば、376を素因数分解した結果をFORTRAN流に書くと、2*3**3*7となります。ここで、*1つは乗算×を表し、x**yのように*を2つ連続して書くと、これはxのy乗を表します。素因数分解の結果をこのように出力するプログラムを作るわけです。

 

素因数分解自体の方法は、数学ですでに学習していると思いますが、これをプログラムとして書けるかということを問うわけです。

 

今の先ほどの素数判定プログラムをベースに、この赤字で示した部分で、divisorの値で何回割れるかをカウントするとか、出力時に0乗、1乗と2乗以上とで出力し分ける必要があるので、その場合はどのように修正していくか、ということがポイントになります。

 

次に、与えられた「アルゴリズムの動作を説明する」というルーブリックの具体的な活動として、フローチャートで表現されたアルゴリズムをNSチャートで表現できるかということを試してみます。

 

上図は、最大公約数を求めるフローチャートですが、これを下図のようなNSチャートに書き直すという活動は、実際にプログラムを書く際にアルゴリズムを確認する時に非常に役に立ちます。

 

今の高校生では難しいかもしれませんが、今後小学校からプログラミングを学んできた子どもたちが高校に入ってくる頃には、こういうこともできるようになるのではないかと思っています。このようにルーブリックを使うことで、プログラミングの学習の幅を広げていくヒントになるのではないかと思います。

 

[質疑応答]

Q1(高校教員):試行試験を阪大と東大でなさったということですが、その問題の内容を公開する予定はあるのでしょうか。また、高校や大学が試行試験に参加することは可能なのでしょうか。

 

萩原先生:試行試験への参加については、大学からもしご希望があれば、これを模擬試験として参加していただくことは可能です。問題の公開に関しては、今の段階では公開できません。というのも、この問題でいろいろと模擬試験として使う予定だからです。ある程度時間が経てば公開できると思います。

 

Q2(高校教員):判断力を定義するところで、複数の基準において上位ないし下位のものを選ぶというお話があったと思いますが、その基準となるものをどう評価するのかということに関して、判断項目を設けなかったのには、何か議論があったのでしょうか。

 

というのは、既存の基準に対してジャッジするということはもちろんあると思いますが、未知の部分で自分で基準を決めて判断するというのは、かなり高いレベルなのかなと思います。そういう視点が入っていなかったので、そこの部分はどのように先生はお考えでしょうか。

 

萩原先生:今のご質問は、ここでいう「判断力」は、与えられた基準に対してどのように順位付けをするかを見ている、ということですね。おっしゃる通りだと思います。私も、これを議論しているときに、判断基準を自分で考え出すということのほうが重要じゃないのか、という意見を言っていたのですが、それは却下されまして(笑)。その判断基準を見つけることは思考力の範疇と考え、今のところ「判断力」は、あらかじめ基準が与えられてという状況にしております。ただ、この定義はまだ絶対的なものではないので、今後これをブラッシュアップしていくことになると思います。

 

Q3(高校教員):思考力・判断力・表現力を問うために、結構いい問題が作られても、実際は暗記で乗り越えてしまおうというような対策というのが多いような気がするのですが、今の時点でそういうことへの対策は、何か検討されているのでしょうか。

 

萩原先生:先生のおっしゃる通りですが、対策は今のところありません。いろいろな問題を出しても、予備校などかこれをパターン化して教え込むということは当然あり得ますが、これはコンピュータ科学の宿命ですね。すなわち、与えられた問題のアルゴリズムを見い出すことは、情報の分野で重要な素養です。アルゴリズムを見い出すことは、ある種の「パターン化」、すなわち機械的な作業と考えることができます。だから、次々と新しい問題を考えないといけないのではないかと思います。