CBT での「情報Ⅰ」の出題に関する調査研究について（報告）

令和４年６月
独立行政法人大学入試センター

目 次
＜本 文＞
はじめに・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1
第１章 「情報Ⅰ」を出題するための CBT システムに関する調査研究・・・・・・・3
１．先行研究である阪大システムについての分析・・・・・・・・・・・・・・ 3
２．試験問題管理・蓄積に関する研究の中での検討・・・・・・・・・・・・・ 6
３．TAO の PCI に関する調査研究・・・・・・・・・・・・・・・・・・・・・ 9【コラム①】IMS Global Learning Consortium について
【コラム②】“CBT ならでは”の問題とは ～「情報Ⅰ」の CBT 試験を考える～
第２章 試験問題の蓄積・管理 ・・・・・・・・・・・・・・・・・・・・・・・ 24
１．試験問題蓄積・管理システムの構想・・・・・・・・・・・・・・・・・・24
２．調査研究を通じて見えた課題・留意点・・・・・・・・・・・・・・・・・25
第３章 将来的な大規模 CBT システムの開発に向けて・・・・・・・・・・・・・ 29【コラム③】大規模入学者選抜における CBT の活用の可能性＜付 録＞
付録１関係：調査研究の概要
１

大学入試センターにおいて調査研究した PCI について・・・・・・・37

付録２関係：TAO や PCI モジュールの利用方法
２―１ TAO の構築方法について・・・・・・・・・・・・・・・・・・・・39
２－２ 大学入試センターが公開する PCI モジュールのインストール方法について・・・・・・・・・・・・・・・・・・・・47

付録３関係：プログラミング問題 PCI モジュール
３－１ プログラミング問題 PCI モジュール 操作マニュアル（BPS 株式会社）
・・・・・・・・・・・・・・・・・・・・53
３－２ プログラミング問題 PCI モジュール ソースコード説明書（BPS 株式会社）
・・・・・・・・・・・・・・・・・・・・73
３－３ プログラミング問題 PCI モジュール 問題例とその作成方法(①バブルソート問題)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・81
３－４ プログラミング問題 PCI モジュール 問題例とその作成方法(②シーザー暗号問題)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・89
付録４関係：散布図 PCI モジュール
４－１ 散布図 PCI モジュール 操作マニュアル（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・・99
４－２ 散布図 PCI モジュール ソースコード説明書（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・ 127
４－３ 散布図 PCI モジュール 問題例とその作成方法・・・・・・・・・ 131
付録５関係：クロス集計 PCI モジュール
５－１ クロス集計 PCI モジュール 操作マニュアル（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・ 139
５－２ クロス集計 PCI モジュール ソースコード説明書(データアクセス株式会社)
・・・・・・・・・・・・・・・・・・・ 171
５－３ クロス集計 PCI モジュール 問題例とその作成方法・・・・・・・ 175
付録６関係：調査研究から明らかになったこと
６－１ 教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（プログラミング問題） 調査研究報告書・・・・・・・・・・183
６－２ 教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究
業務（データ活用問題） 調査研究報告書・・・・・・・・・・・・195

はじめに
独立行政法人大学入試センター（以下、「大学入試センター」という。
）では、国内外の各種試験の CBT（Computer-based Testing）化の動向を踏まえ、平成 23 年から、研究開発部に所属する教育工学やテスト理論等を専門とする教員により CBT に関する研究を進めていた。平成 25 年の教育再生実行会議第四次提言以降には、大学入学共通テスト（以下「共通テスト」という。
）への CBTの導入について各所から提言があった1。ただし、各提言の意図するところは必ずしも同じではな
く、特定の科目に限らず共通テスト全体に CBT を導入することを提言するもの2と、共通テストにおいて CBT を活用して「情報Ⅰ」を出題することを提言するもの3があった。
これらの提言を受けて、大学入試センターにおいて共通テストでの CBT の活用について検討を重ねてきた4が、「大規模入学者選抜における CBT 活用の可能性について（報告）」（以下「令和３年報告書」という。
）にあるとおり、単なる学力試験・調査等をはるかに超える実施水準が求められる大学入学者選抜の性質を考えると、全国的に均質で質の高い受験環境（パソコン、ネットワー
ク等）の確保、トラブルが生じた場合の対応体制の構築、新しい試験の在り方に対する受験者を含めた社会全体の理解などについて細やかな検討が必要であるという結論に至った。そして、「平成30 年告示高等学校学習指導要領に対応した令和７年度大学入学共通テストからの出題教科・科目について」（令和３年３月 24 日大学入試センター）においては、令和７年度共通テストを PBT（Paper-based Testing）で行う方向性を示した。これらを受けて、文部科学省から令和３年７月に公表された「令和７年度大学入学者選抜に係る大学入学共通テスト実施大綱の予告」5により、令和７年度共通テストは PBT で実施することとされた。
しかし、令和３年度までの間、大学入試センターでは、文部科学省の大学改革推進等補助金により、共通テストにおける CBT の活用、特に「情報Ⅰ」の出題に当たっての CBT の活用について、テスト理論、情報・情報技術、情報教育などの各分野の有識者にも参画いただきながら調査研究を
1

共通テストにおける CBT の活用に関する提言については、令和３年報告書の P.1～2 及び参考資料２にお

いて詳述。
2

具体的には、教育再生実行会議第四次提言「高等学校教育と大学教育との接続・大学入学者選抜の在り方について」（平成 25 年 10 月 31 日）、中央教育審議会答申「新しい時代にふさわしい高大接続の実現に向けた高等学校教育、大学教育、大学入学者選抜の一体的改革について」（平成 26 年 12 月 22 日）、高大接続システム改革会議「最終報告」（平成 28 年３月 31 日）などである。
3

具体的には、「未来投資戦略 2018―「Society5.0」「データ駆動型社会」への変革―」（平成 30 年６月 15日閣議決定）、統合イノベーション戦略推進会議「AI 戦略 2019」（令和元年６月 11 日）、「成長戦略フォローアップ」（令和２年７月 17 日閣議決定）などである。
4

平成 28 年度から令和３年度にかけては、文部科学省の大学改革推進等補助金も受けて調査研究を実施した。
5「令和 7 年度大学入学者選抜に係る大学入学共通テスト実施大綱の予告」及び「令和 7 年度大学入学者選

抜実施要項の見直しに係る予告」について（通知）（３文科高第 471 号令和 3 年 7 月 30 日付け文部科学省
高等教育局長）の別紙１-1-

実施してきた。この調査研究の成果は、初等中等教育及び高等教育における情報教育の充実にも資するものと考えられる。
このため、大学入試センターにおいて行った、「情報Ⅰ」の CBT での出題に関する調査研究の成果を、大学入試センターに設置された「入学者選抜における CBT の活用に関するワーキングチー
ム」に指導・助言いただきながら、本報告書に取りまとめることとした。

-2-

第１章 「情報Ⅰ」を出題するための CBT システムに関する調査研究
第１章では、大学入試センターにおいて令和３年度までに行った、CBT の特徴を生かした「情報Ⅰ」の試験問題を出題するための CBT システムに関する調査研究の成果をまとめる。
１．先行研究である阪大システムについての分析
大学入試センターが「情報Ⅰ」の CBT での出題に関する調査研究を行う上で参考にできる先行事例は多くなかった中で6、平成 28～30 年度に実施された文部科学省大学入学者選抜改革推進委託事業（情報分野）「情報学的アプローチによる「情報科」大学入学者選抜における評価手法の研究
開発」（以下「平成 28～30 年度文部科学省委託事業」という。
）において開発された CBT システムは貴重な先行事例であった。本事業の受託者が大阪大学を中心とするグループであったことから、本報告書においてはこの CBT システムを「阪大システム」と呼ぶこととする。
平成 28～30 年度文部科学省委託事業は、多面的・総合的な評価を行うための実践的で具体的な評価手法を構築し、その成果を全国の大学に普及することにより、各大学の入学者選抜の改革を推進することを目的としていた7。大阪大学を中心とするグループが受託したのは情報分野に関する研究開発だが、情報分野にはプログラミングの力など PBT では評価しにくいものがあった。そこで、出題できる設問の幅を広げて問いたい力を問えるようにするため、CBT で問うことを前提として検討が進められた。平成 28～30 年度文部科学省委託事業の実施当時は、情報特有の出題機能を持つ既存 CBT システムがなかったこともあり、CBT システムを独自開発することとされた。
阪大システムで特筆すべき機能は、大きく２種類の問題形式でプログラミング問題を出題できることである。ただし、いずれの問題形式についても、試験問題のシステムへの登録は専門性を有するシステムエンジニアが行うことが前提となっていた。
①短冊型問題「短冊型問題」は、問題に示されたプログラムの断片（以下「短冊」という。
）を並べ替えて指定された内容のプログラムを作成するといった問題形式である。受験者は、選択肢欄から使用する短冊を解答欄にドラッグ・アンド・ドロップし、短冊を並べ替えて解答を作成する。このような問題形式でプログラミングに関する力を問おうとした理由の一つとして、プログラミングの本質的な力を問うのであれば、プログラミング言語の些末な文法誤り等のみをもって誤答とするような問い方は避けるべき、という考え方があった。この問題形式であれば、受験者はプログラミング言語の些6

令和２年度に大学入試センターは「コンピュータを用いた試験・学力調査における出題・解答形式に関する国内外調査」（受託者：株式会社教育測定研究所）を実施したが、その成果報告書である「CBT における出題形式に関する調査報告書―革新的項目タイプを中心として―」においても、情報分野の力を問う CBT試験の事例は取り上げられていなかった。
7

https://www.mext.go.jp/a_menu/koutou/senbatsu/1397824.htm（令和４年５月 31 日閲覧）-3-

末な文法に過度に囚われることなくプログラムを作成できる8ので、問いたい力をよりよく問うことができる。また、10～20 分程度の解答時間でプログラムを一から入力して作成させることは時間的に難しいが、短冊型問題の形式で出題すれば、受験者は比較的短時間でプログラムを完成できるという理由もあった。
この短冊型問題の解答は、並べ替えられた短冊の順序であることから、選択肢に用意する短冊によっては、正答を一意に定めることが困難になることもあり、部分点を含めると自動的に採点することは容易ではない。
なお、短冊の表示内容は自由で、例えば、実際のプログラミング言語ではなく日本語表記の疑似言語などを表示することもできる。

【図１】阪大システムの短冊型問題の解答画面（イメージ）②プログラム実行型問題
プログラムを考案するときに、プログラムを一度で完成させることは一般的には容易ではなく、プログラム案を考え、それをいろいろな入力データで実行し、実行結果を確認し、作成したプログ
ラムの完成度を確認する。完成度が低い場合はプログラムのどこが悪いのかを考え、どのように変8

受験者の解答時に構文誤りが生じにくいようにするための工夫として、解答欄に短冊をドラッグ・アン

ド・ドロップする時に自動的に段下げをする機能も備えた。

-4-

更すればよいかを考えプログラムを修正し、それを実行して実行結果を確認する。このような試行
錯誤を繰り返しながらプログラムを完成度の高いものにしていく。
試行錯誤しながらプログラムを完成させる力を評価するためには、CBT でプログラムを作成する機能、及びそのプログラムを実行して結果を表示する機能が最低限必要である。このため、受験者がブロックを用いてプログラムを書き、それを実行して 結果を確認し、プログラムを修正して再度実行できる問題形式である「プログラム実行型問題」を開発した。
この「プログラム実行型問題」がどのような問題形式であるかについて、【図２】を例に説明する。これは、碁盤の目状の領域で示された番号の順にロボットを移動させるプログラムを、使用するブロック数を抑えて作成することを求める問題である。ロボットを移動させる際の操作（ロボットに対する移動命令）は、「前進」、「右に 90 度回転」、
「左に 90 度回転」の３種類である。この３種類の操作でロボットを指示通りに移動させることはできるが、使用するブロック数を抑えるためには「繰り返し」を用いる必要がある。操作系列のどの部分系列を繰り返せばよいかを受験者に発見させ、それを実現するプログラムを作成させることが、この問題のねらいである。
問題では、まず、【図２】の左側の「ブロックペイン」領域に、プログラムを作成するために使用可能な操作がブロックとして与えられる。受験者はそのブロックを「プログラミング領域」にドラッグ・アンド・ドロップしてプログラムを作成する。
「実行ボタン」を押せば、【図２】の下側の「プログラミング領域」のプログラムが実行され、実行結果が右上の「実行結果表示領域」に表示される。受験者は、この実行結果を見てプログラムが正しいかどうかを判断する。また、正解となるプ
ログラムは唯一ではなく、複数の解が存在しうるため、採点もプログラムを実行した結果に基づいて行う。
なお、この問題形式では、【図２】のようにブロック型言語を使用することもできるし、【図１】のような短冊型言語、あるいは Python などの実用プログラミング言語を使用することもできる。

-5-

【図２】阪大システムのプログラム実行型問題の解答画面（イメージ）
２．試験問題管理・蓄積に関する研究の中での検討第２章で触れるとおり、大学入試センターにおいては、令和元～２年度に、文部科学省の大学改革推進等補助金により「先端的試験問題管理・蓄積基盤についての研究」を実施した（受託者：富士通株式会社（当時））。これは、共通テストのような大規模な試験において「情報Ⅰ」を CBT で出題する場合、受験者数などによっては同一時刻に一斉実施することが難しく、項目反応理論（ItemResponse Theory；IRT、以下「IRT」という。
）等に基づいて複数回試験を実施することも検討する必要があったことから、共通テストで「情報Ⅰ」を CBT-IRT で出題することについて研究を行ったものである。この研究の中で、プログラミング問題の出題・解答機能について、１で触れた阪大システムの①短冊型問題、②プログラム実行型問題の双方を参考にしながら検討した。この検討の成果のうち、特筆すべきものを以下で紹介する。
(1) プログラミング問題の登録の機能１にあるとおり、阪大システムでは、作成した試験問題のシステム上への登録は、専門性を有す-6-

るシステムエンジニアが行うことが前提となっていた。しかし、仮に CBT-IRT に基づいて「情報Ⅰ」の試験問題を出題するとした場合には、大量の試験問題を作成し、CBT システム上に登録することになるため、情報技術に関する専門性を持たない者でも試験問題の登録を行えるようにすることが重要であった。
このため、「先端的試験問題管理・蓄積基盤についての研究」の中で、疑似言語を利用するプロ
グラミング問題を出題でき、かつ、情報技術に関する専門性を持たない者でも問題の登録を行えるシステムについて検討した。具体化した問題作成画面及び入力方法は【図３】のようなものである。
【図３】において「選択肢表示内容」を入力する欄が設けられていることから分かるとおり、本システムにおいても、１の阪大システムと同様に、短冊への表示内容を任意に設定する機能を備えた。センター試験や共通テストの『情報関係基礎』においてプログラミング問題を出題する際には、高等学校の授業で多様なプログラミング言語が利用されていることから、公平性を鑑みて、大学入試センター独自の日本語表記の疑似言語「DNCL」を使用してきた。共通テストの「情報Ⅰ」で CBTを活用し、プログラミング問題を出題するという場合も、特定の言語を使用するのではなく、いずれのプログラミング言語で学んだ受験者にとっても不利益が生じないよう、DNCL のような疑似言語を使用することが望ましいと考えたのである。
具体的には、試験問題で表示する短冊を作成する際、短冊を解答欄に置いた場合に機能するプログラムとは別に、受験者が解答画面で見る短冊上の文字を設定することができるようにした。例えば、DNCL で表現した内容を短冊上で表示したい場合は、それを【図３】（上）の問題作成画面の「選択肢表示内容」欄（左側）に記入し、その短冊を解答欄に置いた場合に機能するプログラミン
グ言語を「実行コード」欄（右側）に記入する。解答時に、DNCL で内容を表現した短冊を並べ替えて作成したプログラムを実行した際には、「実行コード」欄に記入されている内容が実際のプログラムとして実行される。なお、本研究では、「実行コード」のプログラミング言語は Python とし
た。

-7-

No.
1

項目名

説明

備考

解答
設問番号

設問番号を入力します。

最大 3 文字※初期表示では「ア」が入力された状態で表示されます。
正解
2

最大 10000 文字

正解を入力します。

短冊問題設定上部固定値

上部固定値：上部に固定で表示する値を設定します。

選択肢

選

下部固定値

下部固定値：下部に固定で表示する値を設定します。

表示順

《▲》
《▼》をクリックすると、選択肢の表示順を変更できます。

択

肢：プログラミングの選択肢を設定します。

選択肢表示内容（DNCL） 選択肢に表示する内容を入力します。

最大 100 文字

実行コード（Python）

実行するプログラムのコードを入力します。

最大 1000 文字《追加》ボタン

上部固定値/選択肢/下部固定値を増やします。

《削除》ボタン

上部固定値/選択肢/下部固定値を減らします。

【図３】「先端的試験問題管理・蓄積基盤についての研究」プログラミング問題（短冊式）の問題作成画面（上）と入力に関する説明（下）-8-(2) 受験者が思考力・判断力・表現力等を発揮して解答する問題を出題するための工夫「先端的試験問題管理・蓄積基盤についての研究」において具現化された受験者の解答画面（イメージ）は、【図４】のようなものである。本研究で開発したシステムにおいても、阪大システムと同様、組み立てたプログラムを実行させて実行結果を確認できる機能を設けた。これにより、受験者は、【図４】の右下の実行エリアで実行結果を確認し、試行錯誤しながら試験問題の解答に取り組むことができる。なお、受験者が限られた時間で効率的・効果的に試行錯誤を行えるよう、以下のような工夫も施した。
・解答エリアにおいて、解答時に短冊を配置できる場所を明示できる。
・選択肢エリアにある短冊のうち、一度解答に使用した（選択肢エリアから解答エリアにドラッ
グ・アンド・ドロップした）ものは着色される。
・一度取り組んだものをリセットし、初期状態に戻せる。
また、試験終了後の解答内容の評価に当たっても、受験者が思考力・判断力・表現力等を発揮できたかを分析することを目指し、受験者ごとに操作ログ（画面アクション）を記録して保持することが望ましいと考えた。これにより、仮に正しい実行結果を導き出せなかった解答についても、解答プロセスにより部分点を付与するなどの検討が可能になる。

【図４】「先端的試験問題管理・蓄積基盤についての研究」のプログラミング問題の解答画面（イメージ）

３．TAO の PCI に関する調査研究
共通テストにおいて「情報Ⅰ」を CBT で出題することについて検討を進めてきたが、「はじめに」にあるとおり、令和７年度共通テストは PBT で実施されることが令和３年７月に決定されたが、この結論に至るまでに実施した「情報Ⅰ」の CBT での出題に関する調査研究の成果は、社会に還-9-元されるべきものである。そこで、令和３年度には、令和２年度までに実施した調査研究で得た成果を、今後の個別大学における大学入学者選抜や初等中等教育段階における情報教育に資する
CBT システムに整えて、社会に還元することを目指した。具体的には、１、２の調査研究を通じて検討したものも含め、CBT の特徴を生かした「情報Ⅰ」の問題を、諸外国や日本国内において利活用が広がっている CBT プラットフォームの TAO で出題できるようにするための調査研究を、
文部科学省の大学改革推進等補助金により実施した。なお、この調査研究の方向性を定めるに当たっては、入学者選抜における CBT の活用に関するワーキングチームの委員にも指導・助言いただ
いた。
TAO は、国際標準化団体である IMS Global Learning Consortium が策定する QTI (Question &Test Interoperability) 規格9に準拠して構築されている CBT プラットフォームで、ルクセンブルク
大学により開発され、現在は、ルクセンブルクにある Open Assessment Technologies S.A.（以下「OAT 社」という。
）により保守・管理されている。TAO はオープンソフトウェアであり、ソースコード等は無料で入手することができる10こともあり、諸外国で広く使用されている。日本国内
でも、文部科学省が開発している MEXCBT11が TAO をベースとしているため、今後、日本の初等中等教育においても TAO が広く使用されることが予想される。
QTI 規格は、問題（アイテム）とテストデータの表現の基本的な構造についての技術標準である
が、QTI 規格に定められている項目タイプとしては【表１】のようなものがある。
【表１】QTI 規格 3.0 に定められている項目タイプ
通常型

選択、並べ替え、組合せ、マトリックス、ホットテキスト、穴埋め、スライダー、記述問題、ファイルアップロード、メディア

穴埋め型

選択肢、テキスト入力

画像

ホットスポット、並べ替え、組合せ、穴埋め【表１】以外の項目タイプを QTI 規格準拠の CBT システムで出題したい場合は、別途 PCI(Portable Custom Interaction)12モジュールを開発し、それを QTI 規格準拠の CBT システムに組み
9

QTI 規格とは、IMS Global Learning Consortium が策定する、CBT システム間の互換性・相互運用性の向上を目的とした標準規格である。QTI 規格は随時改訂されており、令和４年５月には“IMS Question andTest Interoperability v3.0 Final Release Specification”が公開された。
10

ただし、ソースコード等を入手した後に動作環境の構築が必要となる。

11

MEXCBT とは、文部科学省が開発・展開を進めている、児童生徒が学校や家庭において、国や地方自治体等の公的機関等が作成した問題を活用し、オンライン上で学習やアセスメントができる公的 CBT（Computer Based Testing）プラットフォームである。詳細は、文部科学省ウェブサイト
（https://www.mext.go.jp/a_menu/shotou/zyouhou/mext_00001.html）において確認できる。
12

IMS Global Learning Consortium が定める PCI の仕様書（P.10 で詳述）の記載を踏まえると、PCI とは、QTI 規格に準拠した CBT システムにおいて情報技術を利活用する試験問題や独自形式の試験問題を導入するための取り決めであると言える。

-10-

込むことで可能となる。令和３年度当初の段階で最新であった TAO3.313の場合、 Audio（音声で解答）、Likert（５段階評価の形で解答）、Liquid（液体の量を示す形で解答）、Math Entry（数式を入力する形で解答）、Text Reader の５種類の項目タイプの PCI モジュールが搭載されているが、これ以外の項目タイプの試験問題の出題は、独自の PCI モジュールを開発して使用することで可能になる。
大学入試センターでも、CBT の特徴を生かした「情報Ⅰ」の試験問題を TAO で出題できるよ
うにすることを目指し、以下のとおり、PCI に関する調査研究を実施した。ここではその概要を紹介する。
(1) PCI モジュールの開発に向けた情報収集と研究計画の検討
令和３年夏に PCI に関する調査研究を実施するという方向性は定めたものの、日本国内では QTI
規格や PCI 規格に関する情報が十分に普及している状況ではなく、大学入試センターも調査研究を進める上で必要な情報を有していなかった。このため、まず、調査研究に必要な情報を収集し、その上で研究計画（主に仕様書）を検討した。
PCI 規格の仕様書の入手
PCI モジュールの開発は、IMS Global Learning Consortium が定める PCI 規格の仕様書（IMS
Global Portable Custom Interactions Specification）を基に行う必要がある。本仕様書は、令和４年
５ 月 時 点 で は 確 定 さ れ て い な い が 、 日 本 国 内 の 法 人 等 の 場 合 、 日 本 IMS 協 会（https://www.imsjapan.org/）の会員であれば本仕様書(案)を閲覧することができる。このため、大学入試センターは令和３年９月に日本 IMS 協会に入会した。また、大学入試センターが入札公告を行う調査研究への応札条件にも、「IMS Global Learning Consortium 又は日本 IMS 協会に入会している（又は入会申請中である）こと」を含めた。
PCI モジュールの開発事例やその成果物の収集
本調査では、諸外国を中心に増えている PCI モジュールの開発事例も参考とした。例えば、フランスでは、TAO を用いての全国一斉の学力調査が実施されているが、従来の TAO にはない問題
形式の試験問題を出題するために様々な PCI モジュールを開発し、実際に学力調査で活用している。それらの開発を手掛けてきたフランス企業の Wiquid が過去に開発した PCI モジュールを参考にした14。
また、
Wiquid は新規のPCI モジュールを開発するためのWeb アプリケーション“Wiquid’s
PCI Generator for TAO platform Free to use”（オープンソース）を作成しているが、これを Wiquid13

令和４年２月に、OAT 社から TAO3.5 が公表された。

14

令和４年３月までに 25 種類の PCI モジュールを開発した実績があり、その多くがフランス国内の学力調査において使用されている。なお、Wiquid がこれまでに作成した PCI モジュールについては、同社ウェ
ブサイト（https://www.wiquid.fr/index.php/sample-page/）で紹介されている。

-11-

から提供してもらい、活用した。
仕様書の作成その上で、PCI に関する調査研究を外部委託により実施することとしたが、仕様書に記載する具体的な開発内容については、仕様策定委員会（テスト理論、情報・情報技術、情報教育の専門家から構成）における議論を踏まえて決定した。
また、仕様書に示す開発手法についても、専門家の意見を踏まえて検討した。従来、官公庁が発注するシステム開発の方式としては、ウォーターフォール開発のように、開発を開始する前にあらかじめ開発内容を決定する方式が採用されることが多かったが、令和３年３月に内閣官房情報通信技術（IT）総合戦略室から「アジャイル開発実践ガイドブック」が公表され、政府情報システム開発においても、従来の開発スタイルとは別にアジャイル開発15という選択肢を設ける必要があることが示された。また、「アジャイル開発実践ガイドブック」においては、「開発手法としてアジャイ
ル開発を採用する場合には、専門知識を有する第三者（CIO 補佐官、外部の支援事業者など）による状況判断の機会を設ける16」ことが推奨されている。これらのことも踏まえ、大学入試センターが実施する PCI に関する調査研究についても、アジャイル開発を参考にするとともに、開発の過程
で有識者の助言も受けながら開発内容を柔軟に調整できるような仕様書を作成した。具体的には、受託者に、大学入試センターや大学入試センターに設置されている有識者会議17（以下単に「有識者会議」という。
）と月に１回程度協議し、協議の場で開発状況について報告したり、開発内容に関して意見交換したりすることを求めた。その際に、進捗状況が分かる資料やモックアップ、プロ
トタイプを適宜提示することを求め、開発の状況を大学入試センターや有識者会議と十分に共有できるようにした。さらに、大学入試センターや有識者会議と協議した内容を可能な限りその後の調査研究に反映させること、反映させることが困難な場合は調査研究報告書にその旨を記載することも求めた。
(2) プログラミング問題 PCI モジュール（受託者：BPS 株式会社）
プログラミングを行う際、最初から完成されたプログラムを書き上げるようなことはなく、作成
途中のプログラムの動作を確認しながら段階的にプログラムを完成に導いていくのが通常である。
よって、プログラミングについて出題したい場合、本来であればそのようなプロセスを通じて受験者の力を問う、すなわち、受験者が自分でプログラムを組み立てて実行し、試行錯誤の過程を経な

15「アジャイル開発実践ガイドブック」においては、アジャイル開発とは「インクリメンタルかつイテレー

ティブな開発」 と表現されている。インクリメンタルとは、漸次的に（少しずつ）作り進める様を表す語
で、イテレーティブとは、反復的に開発行為を繰り返すことを表す語であり、アジャイル開発とは「少しずつ反復的に作り進める開発」 であるとされている。
「アジャイル開発実践ガイドブック」（内閣官房情報通信技術（IT）総合戦略室）P.29

16
17

有識者会議は、入学者選抜における CBT 活用に関するワーキングチームの一部の委員から構成した（巻末の名簿を参照）。

-12-

がら目標に近づけていくといった解き方を通じて問うことが望ましいと言える18。また、本質的な力を問うのであれば、プログラミングにおける些末な文法間違いのみをもって誤答とすることは避けるべきという思想も引き継ぐこととした。これらの考え方を踏まえ、指定した内容のプログラム
を「短冊」の並べ替えにより構築させるといった問題形式によりプログラミング問題を出題する「プログラミング問題 PCI モジュール」を開発することとした。
開発した PCI モジュールにより TAO 上でプログラミング問題を作成・出題した場合の解答画面（イメージ）を【図５】に示す。また、開発に当たって特に検討した点について以下に述べる。

【図５】プログラミング問題 PCI モジュールで作成・出題する問題の解答画面（イメージ）
専門性を必要としない問題作成・登録画面
プログラミング問題を出題する場合、同じ実行結果を導くプログラムが複数存在したり、受験者の解答内容によっては例外的な処理が発生したりすることを考慮する必要がある。問題の作成・登録の際に情報技術に関する高い専門性が必要となると、そもそもプログラミング問題 PCI モジュールを活用しにくかったり、活用しても出題傾向に偏りが出たりする恐れがあったため、プログラ
ミング問題 PCI モジュールにおいても、２の検討時と同様、情報技術に関する専門性を持たない試
験関係者でも問題の作成・登録を行えるようにすることを重視した。
【図６】は、このことを重視して開発したプログラミング問題 PCI モジュールにおける問題作成画面である。画面上部に「問題欄」、画面左枠に「短冊型コード選択肢欄」、右枠に「解答欄」をそれぞれ配置した。問題作成の大まかな手順は以下のとおりとなる。
①画面上部の「問題欄」に問題文を入力する。
②画面左枠の「短冊型コード選択肢欄」に、問題で選択肢として表示する短冊を配置する。
③配置した短冊が持つ役割（JavaScript のコード）や、短冊上に表示する内容を入力する。

18

PBT のプログラミング問題では、従来のセンター試験及び共通テストの『情報関係基礎』や、令和３年３月に大学入試センターが公表した「サンプル問題（情報）」にあるような、問題作成者がつくったプログ
ラムを読み解くことが中心の出題になるケースが多い。令和３年報告書の付録２の参考資料１を参照。

-13-

④解答時、（受験者がドラッグ・アンド・ドロップで配置せずとも）最初から解答欄に配置されている短冊（固定短冊）を解答欄に配置する。
具体的な問題作成の手順については、本報告書の付録３－１「プログラミング問題 PCI モジュ
ール 操作マニュアル」と付録３－３・３－４「プログラミング PCI モジュール 問題例とその作成方法」に記載している。

【図６】プログラミング問題 PCI モジュールの問題作成画面
短冊の形態・表示内容
TAO 上で、受験者が自分でプログラムを組み立て実行し、試行錯誤の過程を経ながら解答する
プログラミング問題の出題を実現するため、短冊の形態や表示内容についても検討を行った。
TAO 上で動作する PCI モジュールは全て JavaScript で構築されているため、それぞれの短冊には実行時に処理される JavaScript のコードを割り当てる必要がある。しかし、プログラミング問題
PCI モジュールで出題する試験問題で問いたい力は、JavaScript という言語を習得しているかではなく、プログラミングの組み立て方や論理的な思考を学ぶことにあることから、JavaScript 特有のコーディング規制や構造などの特性を理解していなくとも解答することが可能な形にすることを目指した。このため、短冊に表示する内容は、１、２の先行事例も踏まえ、プログラムを構成する
JavaScript の命令文とするのではなく、問題作成者が設定する疑似言語など任意の内容とできるようにした。
また、短冊の類型は「process」「while」「for」「if」「if else」「print」の 6 種類とし、それぞれ、「短冊型コード選択肢欄」の上にあるボタンをクリックすることで該当する類型の短冊が「短冊型コード選択肢」内に配置されるようにした。また、短冊は類型ごとに色分けをすることとした。更

-14-

に、ユニバーサルデザインへの対応のため、各短冊の特性が外観からも分かるよう、短冊の左上に類型を示すアイコンを配置した。
例外的な処理が発生した場合の対応
プログラミング問題を出題するにあたり、while や for を用いた無限ループ（処理が永久に終わらない状態）によって、CBT を行う端末に大幅な負荷をかける可能性があるため、このことに対する対策を十分に行う仕様とした。具体的には、ループ処理が 1000 回実行された場合や、全体の処理に指定秒数（デフォルトは 5 秒、変更可能）を上回る実行時間が経過した場合において、強制的に処理の中断がかかる仕様とした。
不正行為等への対応
プログラミング問題 PCI モジュールを使用して出題する試験問題ではプログラムそのものを扱うため、不正なコードを挿入するインジェクション行為により、試験問題の破壊的行為や他の受験者の解答内容の不正入手など、試験実施に支障をきたす不正行為が、意図する、しないに関わらず発生する可能性がある。このため、これらの不正行為を防止する仕様とした。具体的には、自由記入が可能な短冊には入力可能な文字を制限したり、特定の文字が入力された場合に強制的に削除したりできるようにした。
一方、不正行為への対応をしすぎてしまうと、短冊形コードを活用したプログラミング問題の幅や拡張性が失われてしまい、学習の方向性における選択の幅を狭めることにつながる。このため、上記のような制限の範囲や種類については、出題者が問題作成時に選択肢プロパティから変更できるような仕様とした。
なお、この観点から、短冊中の空欄に関数を入力できる仕様にすることについても、有識者会議にて議論を行った結果、見送ることとした。関数を実装すると、インジェクション行為など不正行為への対策を増やす必要性が高まることに加え、JavaScript の特性に大きく左右されるという事情もあり、搭載の実現には更に詳細な設計が必要であるとされた19。
大学入試センターと有識者会議は、
プログラミング問題 PCI モジュール開発の受託者である BPS
株式会社と計５回の協議を実施した。これとは別に、大学入試センターと BPS 株式会社の打合せも随時実施した。調査研究の成果物として納品されたプログラミング問題 PCI モジュールは、
GitHub において公開している（https://github.com/rdncuee）。プログラミング問題 PCI モジュー
ルの操作マニュアルは本報告書の付録３－１、ソースコード説明書は付録３－２として掲載している。また、プログラミング問題 PCI モジュールにより作成・出題できる問題例については、付録３－３・３－４で紹介している。
本報告書の付録６－１「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業

19

務（プログラミング問題） 調査研究報告書」P.10-11 に詳述。

-15-

なお、大学入試センターや有識者会議と協議したが PCI モジュールに反映させることが困難であった内容とその理由などについてまとめた調査研究報告書は、付録６－１として掲載している。
(3) 散布図 PCI モジュール、クロス集計 PCI モジュール（受託者：データアクセス株式会社）「情報Ⅰ」の内容として、新しく「(4) 情報通信ネットワークとデータの活用」が設けられた。
この項目についても、PBT で問う場合、時間内に手計算で処理できる程度のデータしか試験問題で扱えないが、CBT で問うことで、大量のデータを試験問題で扱える。また、「情報Ⅰ」でも重視している実データを扱うことも容易になる。
このような出題を実現する TAO の PCI モジュールの先行事例として、EtherCalc20という Web
ベースの表計算システムを基にした PCI モジュール（オープンソース）が存在する（開発元：
Wiquid）。ただし、この PCI モジュールはタブレット型パソコン上での操作ができない、パソコン
上での操作が複雑であるという課題があったため、大学入試センターではこれらを克服した PCI についても調査研究することとした21。具体的には、以下の２つの PCI について調査研究を行うこととした。
「散布図 PCI モジュール」 ：TAO の解答画面で散布図を作成し、その散布図や回帰直線、相関係数等を基に試験問題に解答させる。
「クロス集計 PCI モジュール」：TAO の解答画面でクロス集計を行い、その集計結果を基に試験問題に解答させる。
開発した PCI モジュールにより TAO 上で散布図やクロス集計の試験問題を出題した場合の解答画面（イメージ）を【図７】【図８】に示す。また、開発に当たって特に検討した点について以下に述べる。

【図７】散布図 PCI モジュールで作成・出題する問題の解答画面（イメージ）

20

EtherCalc は https://ethercalc.net/において使用することができる（令和４年５月 31 日閲覧）。

21

ただし、EtherCalc を基にした PCI モジュールも大学入試センターの調査研究の参考になるため、開発

元の Wiquid から入手し、本調達の入札公告期間中に当該 PCI モジュールについての情報を応札者が求める場合、閲覧を認めた。

-16-

【図８】クロス集計 PCI モジュールで作成・出題する問題の解答画面（イメージ）
散布図 PCI モジュールとクロス集計 PCI モジュールの位置付け
散布図 PCI モジュールとクロス集計 PCI モジュールは、プログラミング問題 PCI モジュールと異なり、受験者が問題を解答するためのデータ分析を行うツールの位置付けとした。すなわち、これらの PCI モジュールと組み合わせて出題される選択問題や並べ替え問題などへの解答が受験者の解答となるのであって、散布図エリア及びクロス集計エリアでの操作・表示結果が受験者の解答となるものではない。ただし，PCI モジュール内で受験者が設定した内容は TAO の解答データとして記録することができるようにした。
取り扱うデータの登録
散布図 PCI モジュールとクロス集計 PCI モジュールでは、取り扱うデータを、問題作成者が各
PCI モジュールの機能を使って、文字コード UTF-8 の CSV 形式ファイルをアップロードすることにより登録する。
登録した CSV 形式ファイルの内容は、基データとして散布図エリア又はクロス集計エリアの上部に表示され、その各列（カラム）の項目名が、散布図エリア又はクロス集計エリアでの表示・集計の対象の項目となる。
複数の「散布図エリア」、「クロス集計エリア」の表示
受験者は、散布図 PCI モジュールでは散布図エリアを、クロス集計 PCI モジュールではクロス
集計エリアを、それぞれ１つ以上最大 4 つまで作成・表示できる。これは、受験者が異なる観点で同時にデータ分析し、その結果を並べて比較、検討できるようにすることをねらいとしたものである。
複数の散布図エリアとクロス集計エリアとも、同じ画面上で上下に配置している。この配置については、主な対案として以下を検討した。
（対案１）追加した散布図エリアとクロス集計エリアを同じ画面上でなく、それぞれ別ウィンドウの画面上に表示する。

-17-

（対案２）追加した散布図エリアとクロス集計エリアを同じ画面上に、上下でなく、左右に配置して表示する。
対案１は、ブラウザが具備するポップアップブロック等の機能の影響を受け表示動作が保証できないことから対応を見送った。また、対案２では、個々の散布図エリアまたはクロス集計エリアの横幅が従来の半分以下となり、ユーザインタフェースの観点から好ましくないことから対応を見送った22。
受験者への表示内容と受験者による操作の制限
散布図 PCI モジュール及びクロス集計 PCI モジュールでは、問題作成者が、受験者がデータを分析する際にエリアに表示する内容や、受験者に許可する操作を、以下のとおり柔軟に設定することができる。これにより、多様な問題の作成が可能となっている。
○散布図 PCI モジュール
・外れ値の操作可否
外れ値と思われる値を外した上での分析を受験者に求めるか否かは、試験問題の内容に依存する。そのため、分析の際に受験者が任意の値を除外して分析することを可能とするか否かは、問題作成者が設定できるようにした。
・相関係数、回帰直線の表示/操作可否
データ分析手法として一般的な相関係数、回帰直線、決定係数（R2）が作成された散布図に表示されるのがよいか否かは、試験問題の内容に依存する。そのため、受験者が散布図を作成した際に相関係数、回帰直線、決定係数（R2）が表示されるようにするか否かは、問題作成者が設定できるようにした。なお、これらを表示させる場合、自動的に表示させることとするか、受験者に表示の有無を選択させることとするかについても、問題作成者が設定できる。
○クロス集計 PCI モジュール
・表示できる表/グラフの種類の制限
クロス集計 PCI モジュールでクロス集計として表示可能な表/グラフを【表２】に示す。表
示可能な表/グラフの種類は多いが、クロス集計結果の表示に適切な表/グラフは、取り扱うデータの内容に依存して決まると考えられる。このため、クロス集計 PCI モジュールでは、受験者が使用できる表/グラフを問題作成者が【表２】の中から設定できることとした。
【表２】クロス集計 PCI モジュールで表示可能な表/グラフの一覧
No.

日本語表記[英語表記]

説明1

表[Table]

クロス集計データを表形式で表示する

2

表(要素を棒グラフ)

クロス集計データを表形式で表示し、各セルにその値を

本報告書の付録６－２の「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究

22

業務（データ活用問題）調査研究報告書」P.26-27 に詳述。

-18-

3
4
5
6

[Table Barchart]

棒グラフで表示する

ヒートマップ(全体比較)

クロス集計データを表形式で表示し、各セルの値の大小[Heatmap]

を色で視覚化して表示する

ヒートマップ(行内比較)

クロス集計データを表形式で表示し、行毎に各セルの値[Row Heatmap]の大小を色で視覚化して表示する

ヒートマップ(列内比較)

クロス集計データを表形式で表示し、列毎に各セルの値[Col Heatmap]の大小を色で視覚化して表示する

折れ線グラフ

クロス集計データを、列項目を X 軸にして行項目毎の値[Line Chart]をプロットし、行項目毎に関連する項目の点を直線で繋いで表示する

7
8
9
10
11

棒グラフ(横)クロス集計データを、行項目を Y 軸にして列項目毎の値[Horizontal Bar Chart]

を棒グラフで表示する

積み上げ棒グラフ(横)クロス集計データを、行項目を Y 軸にして列項目毎の値[Horizontal Stacked Bar Chart]

を積み上げた形式の棒グラフで表示する

棒グラフ

クロス集計データを、列項目を X 軸にして行項目毎の値[Bar Chart]

を棒グラフで表示したもの

積み上げ棒グラフ(横)クロス集計データを、列項目を X 軸にして行項目毎の値[Stacked Bar Chart]

を積み上げた形式の棒グラフで表示する

積み上げ折れ線グラフ(横)クロス集計データを、列項目を X 軸にして行項目毎の値[Area Chart]

を積み上げた形式でプロットし、行項目毎に関連する項
目の点を直線で繋いで表示する

・集計値の種類の制限
クロス集計 PCI モジュールでは、受験者が選択できる集計値の種類を、データ分析で一般的
な「件数」
、
「合計」
、
「平均」
、
「最大」
、
「最小」のみとしている。しかし、クロス集計 PCI モジ
ュールが使用するライブラリには他に多くの集計値の種類が用意されている。将来的にこれらの一部が一般的となり、出題・解答時に利用するケースが発生することを考慮し、ライブラリを編集することによって集計値の種類を追加することが可能とされている23。
受験者の操作性や視認性の向上に資するための取組
今回の調査研究では、受験者の操作性や視認性の向上も重視した。ここでは、散布図 PCI モジュールでの受験者の操作性や視認性の向上ために取り組んだ内容を挙げる。
・同じ値のデータの表示
散布図は、同じ値のデータが存在する場合、同じプロットの形式でデータを重ねて表示する

23

クロス集計 PCI モジュールのライブラリの編集方法については、付録５－１の「開発した PCI モジュールの使用に関するマニュアル（クロス集計）」P.14-15 に詳述。

-19-

ので、受験者はその重なりを認識しづらい。このため、受験者がバブルチャートによる表示を選択できるようにしている。バブルチャート表示とした場合、同じ値のデータがあった場合、その点は大きく表示されるので、受験者がデータの重なりを認識しやすくなる。
・外れ値の選択
上述のとおり、散布図を PCI モジュールでは、受験者が任意の値を除外して分析することを可能とする設定ができるが、それを可能とした場合、受験者は外れ値を散布図上でポインティ
ングして選択することができる。
大学入試センターと有識者会議は、散布図 PCI モジュール、クロス集計 PCI モジュール開発の受託者であるデータアクセス株式会社と、計５回の協議を実施した。これとは別に、大学入試セン
ターとデータアクセス株式会社の打合せも随時実施した。調査研究の成果物として納品された散布図 PCI モ ジ ュ ー ル と ク ロ ス 集 計 PCI モ ジ ュ ー ル は 、 GitHub に お い て 公 開 し て い る（https://github.com/rdncuee）。散布図 PCI モジュールの操作マニュアルは本報告書の付録４－
１、ソースコード説明書は付録４－２、散布図 PCI モジュールにより作成・出題できる問題例については付録４－３で紹介している。クロス集計 PCI モジュールの操作マニュアルは本報告書の付
録５－１、ソースコード説明文書は付録５－２として掲載している。また、クロス集計 PCI モジュールにより作成・出題できる問題例については、付録５－３で紹介している。
なお、大学入試センターや有識者会議と協議したが PCI モジュールに反映させることが困難であった内容とその理由などについてまとめた調査研究報告書は、付録６－２として掲載している。
【コラム①】IMS Global Learning Consortium について
大学入試センターでは、令和４年 1 月から国際標準化団体である IMS Global Learning
Consortium[1]（以下「IMS-GLC」という。
）に加入している。
IMS-GLC は、e-Learning や CBT を効果的に活用するための技術標準を策定する非営利団体である。IMS-GLC は、1997 年に EDUCAUSE の National Learning Infrastructure Initiative 内のプロジェクト（教育管理システムプロジェクト）として発足し、1999 年に EDUCAUSE からス
ピンアウトし、独立した組織になった。IMS-GLC では、標準規格の策定だけでなく、開発されたシステムやモジュールが標準規格に適合しているかを検証し、認証を与えることも行なっている。
国内では、IMS-GLC の諸事業の普及のために日本 IMS 協会[2]が設立されている。日本 IMS
協会は、IMS-GLC に日本から参画する団体、及び日本国内での普及活動を行う団体による自主的な組織であり[3]、大学入試センターでは、日本 IMS 協会に令和３年 11 月から加入している。
IMS-GLC は、 CBT システム間の互換性・相互運用性の向上を目的とした標準規格である QTI
規格(Question & Test Interoperability)を策定している。QTI 規格は、オーサリングツール、アイ
テムバンク、テスト構成ツール、学習プラットフォーム、スコアリング/分析エンジン間で質問項
目やテストコンテンツ、解答データの交換を実現させるため、XML 形式のデータ構造を用いている[4][5]。今後、CBT の開発は、項目データや解答履歴データの共有・再利用に向けて QTI 規-20-

格への準拠の必須化が予想される。
QTI 規格は、
令和４年 2 月時点で Version 3.0 Public Candidate
Final が公開されている。このバージョンでは、「HTML5 及び Web コンポーネントのマークア
ップへのサポート」や「Computer Adaptive Testing（受験者の学力を逐次的に測定し、その学力に応じた項目を選択することによって効率的に学力を測定できる）のサポート」、「PCI モジュー
ルのサポート」等が含まれている。PCI モジュールは、QTI 規格に準拠したシステムに新しい形
式の質問項目を導入することができる。
令和３年度に大学入試センターが開発した PCI モジュールは、CBT のプラットフォームである OAT 社の TAO[6]での利用を想定している。TAO は QTI 規格に準拠して構築されており、OECD PISA に活用されるなど諸外国で利活用が広がっている。
大学入試センターでは、IMS-GLC に加入し、引き続き、QTI 規格や PCI モジュールに関する調査研究を進めていく予定である。
参考文献[1]IMS Global Learning Consortium、 https://www.imsglobal.org/ (参照 2022-02-04)[2]日本 IMS 協会、https://www.imsjapan.org (参照 2022-02-04)[3]山田恒夫、日本 IMS 協会の成立とミッション：次世代 ICT 活用教育と国際標準化、法政大学
情報メディア教育研究センター研究報告、Vol. 33、pp. 2-5、2019[4]IMS Question & Test Interoperability (QTI) Specification、
https://www.imsglobal.org/question/index.html[5]永井正一、QTI 概説、法政大学情報メディア教育研究センター研究報告、Vol. 33、pp. 18-21、
2019[6] Open Assessment Technologies TAO、 https://www.taotesting.com (参照 2022-02-04)（執筆：宮澤芳光（大学入試センター研究開発部助教））【コラム②】“CBT ならでは”の問題とは ～「情報Ⅰ」の CBT 試験を考える～
GIGA スクール構想によって、児童生徒が学ぶ現場で ICT の活用が急激に進んでいる。このような流れの中、大学入試を含め試験の CBT 化が検討されるのは、自然な流れとも言える。国も未来投資戦略 2018 やＡＩ戦略実行会議などで、共通テストにおける『情報Ⅰ』の出題とともに CBT での実施について検討するとしてきた。これらを踏まえ、有識者が検討した結果は、「令
和７年度大学入学共通テストでは PBT で行うこととする。
」として、引き続き CBT に関する調査研究を進めるとしている。この大学入学共通テストの CBT 実施については、令和３年 3 月の「大規模入試選抜における CBT 活用の可能性について（報告）」に詳しく述べられている。
試験に CBT を導入する利点は、試験運用や評価・分析の側面が表に出ることが多いが、ここ
では、これまでの Paper-Based Testing（紙の試験、以下「PBT」という。
）では問えなかった問
題や測ることが難しかった力を測定することができる問題、つまり”CBT ならでは”の問題とはどういう問題か、特に「情報Ⅰ」の試験問題で求められる CBT の問題に組み込む機能を、現実-21-

的な視点で考えてみたい。
共通テストに新科目「情報Ⅰ」が実施されると報道された時、SNS などでさまざまな反応が見られた。その中で、「情報Ⅰ」は PBT ではなく、CBT で行うべきだという声がいくつかあった。私は、PBT でも「情報Ⅰ」の大学入学に求められる資質・能力は十分に測れると考えている。しかし、CBT だからこそ、PBT では測ることが難しかった知識や技能を活用したり応用したりして思考・判断・表現し、主体的にパフォーマンス課題に取り組む態度まで測れる可能性があるとも考えている。ゆえに、「情報Ⅰ」の CBT 試験は、単なる紙の試験をコンピュータ上の試験に置き換えたものではなく、「情報Ⅰ」の科目が持つ特性により、受験者が能動的にコンピュータを操作して双方向性のあるプロセスの中で問題の解答を導き出す”CBT ならでは”の問題があってこその試験でなければならない。
PBT では実現が難しい”CBT ならでは”の問題とはどういう問題か。国際的にも実績がある
TAO の標準パッケージに含まれる問題形式（インタラクション）を見てみると、やはり多くの科目で利用できる動画や音声などメディアを使った問題になる。そこで、「情報Ⅰ」の問題に特化した問題形式に組み込む機能（以下「組込機能」という。
）に求められる要件を次のように考えてみた。
①測りたい資質・能力が、その機能を使った問題でより測ることができる。
②その機能を操作できるか否かが測りたい資質・能力に影響を与えない（その機能を誰もが容易に操作することができるよう、場合によっては試験前に説明や練習が必要）。
③単なる解答の正誤だけでなく、解答を導くまでのプロセスを評価することができる。
④その機能を使って問題を解くプロセスが、日ごろ学習において実施しているような双方向性のあるものなっている（日ごろの学習プロセスと問題が乖離していない）。
⑤その機能を使い、さまざまな問題を作成できる汎用性がある（特定の問題のために作られたスペシフィックな機能でない）。
今回、大学入試センターにおいて、「情報Ⅰ」の CBT の問題に組み込む機能として検討したものは、プログラミング問題とデータの活用の問題を作成する機能である。これは、共に大学教育に繋がる「情報Ⅰ」の重要な領域であるとともに、先に挙げた要件の中で、①～③はもちろんの事、④と⑤の両方を満たしている稀有な機能である。
(1) データの活用の問題の組込機能
データの活用の領域で求められることは、データを表現、蓄積するための表し方と、データを収集、整理、分析する方法についての理解と技能、そして、思考力、判断力、表現力等を発揮しデータの収集、整理、分析及び結果の表現の方法を適切に選択し、実行し、評価し改善することである。これらを評価するための CBT の機能としては、一般によく使われている表計算ソフト
ウェアを利用するという考え方もあるが、表計算ソフトウェアは高機能であるがゆえに操作能
力、活用能力がその問いで測りたい資質・能力に大きく影響を与えてしまう可能性がある。このため、操作は極力簡略化し、受験者は、直感的な操作でデータを分析することができる必要がある。そこで、データの分析でよく使う散布図とクロス集計を受験者自らが作成するという機能に限定することで、一定のデータ分析ができると考える。ここで、この機能を使った問題作成で-22-留意すべき点は、この機能の操作結果が解答になるのではなく、この機能を使って分析した結果をもとに問いに答える問題でなければならないことである（第１章３．(3)を参照）。
(2) プログラミングの問題の組込機能
プログラミングの領域で求められることは、問題解決の場面の中で、目的に応じたアルゴリ
ズムを考え適切な方法で表現し、プログラミングによりその過程を評価し改善することである。
これらを評価するための CBT の機能としてプログラミング環境を考えた場合、受験者が学ぶプ
ログラミング言語やプログラミング環境を考えると、特定のプログラミング言語のコードをテキストで記述させるのは、現実的ではないし、コーディングスキルの影響が大きく出てしまう。
そこで、各問題にかけられる時間も踏まえて考えると、疑似言語を含めさまざまなプログラミ
ング言語に対応する短冊（１行分のコードをブロック化したもの）を並べ替えてコーディング
する環境が適切であると考える。受験者は、与えられた短冊型コードを組み合わせ、試行錯誤しながら求めたい実行結果が得られるプログラムを完成させる。これは、まさに実用的なプログ
ラミング言語を使って、目的のプログラムを作り上げるプロセスにも近い。また、同じ結果を導き出すさまざまなプログラムが存在するように、解答は短冊の並び順ではなくプログラムの実
行結果のみを解答とすることも可能になる。逆に、正答を導けなくても、どのように短冊を組み立てたかで、思考のプロセスも評価することが可能になる。さらに、問題の構成によっては、プ
ログラムの実行結果から考察して得られた解答を、多肢選択や空欄補充で解答することも可能になる（第１章３．(2)を参照）。
この二つの組込機能は、あくまでも問題を構成する一つの機能に過ぎない。しかし、(1)であれば多種多様なデータを登録することによって、(2)であれば、登録する短冊を変更することによって、さまざまな問題を作成することができる。もとより、問題作成者は、「情報Ⅰ」に係る受験者の資質・能力を適切に測るために、より実践的な問題解決を題材に、これらの組込機能を生かした思考力・判断力・表現力等を発揮して取り組める問題の作成に努めなければならない。
（執筆：水野修治（大学入試センター試験問題調査官））-23-

第２章 試験問題の蓄積・管理「はじめに」で述べたとおり、平成 25 年以降、共通テストへの CBT の導入について各所から提言があったところだが、その中には、項目反応理論（IRT）等に基づいて共通テストを複数回実施することを志向する提言もあった。IRT に基づいて共通テストを実施する場合、統計的品質管理を行った試験問題を大量に蓄積したデータベースを構築するなど、試験問題に関する多くの情報を管理しながら試験を実施することになる。このことも踏まえ、平成 29 年７月 13 日に文部科学省が示した「大学入学共通テスト実施方針」では、「CBT の導入については、引き続き（独立行政法人大学入試）センターにおいて、導入に向けた調査・検証を行う。平成 29 年度については、問題素案の集積方法の検討及び集積等を行う。この成果も踏まえ、平成 36 年度以降の複数回実施の実現可能性を検討する。
」とされていた。
「大学入学共通テスト実施方針」等を受けて、大学入試センターでは、試験問題や試験問題に関する多くの情報を管理する「試験問題蓄積・管理システム」に関して研究する「先端的試験問題管理・蓄積基盤についての研究」を令和元～２年度に行った。
１．試験問題蓄積・管理システムの構想
現行の共通テストの試験問題は、約 600 人の大学教員等による問題作成及び複層的な点検のプロセスの下、約２年間をかけて作成されている24。
問題バンクを構築する方式の CBT-IRT で試験を実施する場合、多数の試験問題、試験の特性や実施方法によっては数千～数万問の試験問題を用意する必要があるが、PBT の共通テストの問題作成と同様に複層的な点検プロセスを取るため、【図９】のように複数の会議体を設置して役割を分担しながら行うことを想定した。

24

具体的には、６教科 30 科目の試験問題を本試験用、追試験用の２セット作成するために、科目ごとに設置されている問題作成部会（１科目あたり 20～25 人の大学等の教員）が、年間 50 日程度、大学入試セン
ターのセキュリティエリア内で問題作成の会議を行うとともに、問題点検第一部会（１科目あたり約 10 人の大学等の教員及び高等学校関係者）が、年間 15 日程度、大学入試センターのセキュリティエリア内で試験問題の点検を行っている。

-24-

【図９】問題バンクを構築するための問題作成体制（イメージ）作成・管理すべき問題数もそれに関わる問題作成・点検者の数も現行から大幅に増えるため、試験問題の作成や管理を、システムを用いてより効果的かつ確実に実施できないか検証することとした。既存の試験問題蓄積・管理システムで複層的な点検プロセスは組み込まれているものの存在を確認できなかったため、【図９】のような点検を可能とする試験問題蓄積・管理システムについての調査研究を、外部機関に委託して実施した（受託者：富士通株式会社（当時））。
２．調査研究を通じて見えた課題・留意点
試験問題蓄積・管理システムについての調査研究は、受託者における独自システムの開発を通じて行った。１のような試験問題蓄積・管理を実施するための全体の作業フローが、【図 10】のように検討された。

-25-

【図 10】試験問題蓄積・管理システムにおける全体の作業フロー
試験問題蓄積・管理システムに関する調査研究と同時並行で、大学入試センターにおいては、
CBT-IRT に基づく試験の問題作成に関する調査研究も、平成 30 年度に大学入試センターにおいて設置された「CBT 問題作成ワーキンググループ」（以下「問題作成 WG」という。
）において実施した25。その中で、試験問題蓄積・管理システムも試行的に使用した。

25

問題作成 WG では、共通テストにおいて教科「情報」の試験を CBT で実施する場合の問題作成について調査研究を行った。特に令和元年度からは、共通テストにおいて教科「情報」の試験を、問題バンクを構築-26-

CBT-IRT に基づく試験の問題作成に関する調査研究においては、共通テスト（情報）を CBTIRT で実施するために問題バンクを構築する場合の様々な課題について、以下のとおり整理した26。
(1) 共通テストとしての問題の質と量の両立について
・共通テストの問題作成方針に沿った試験問題の大量作成が必要
・１問１問の問題作成に割ける時間が少ない中での試験問題の質の維持が必要
・派生問題の作成が容易ではない中での試験問題の大量作成が必要(2) 問題作成体制について
・問題作成の人材も含めた新たな体制の構築が必要(3) 難易度・識別力の付与について
・事前調査（プレテスト等）に時間と経費を要することを踏まえた検討が必要(4) 問題バンクのメンテナンスについて・特に共通テストの場合、頻繁な問題の入替が必要
・統計データや社会情勢等の変動に伴う試験問題の修正が必要
・学習指導要領改訂への対応が必要
・テスト理論の専門家の配置が必要
ここでは、問題作成 WG において試験問題蓄積・管理システムを試行的に使用することで明らかになった課題や留意点を、上記の(1)～(4)に沿って整理しておく。今後、大学入試センターやその他の試験実施機関等が、CBT-IRT で試験を実施する場合などに大量の試験問題を作成・蓄積・管理する際に参考にされたい。
(1) 共通テストとしての問題の質と量の両立について
・大学入試センターが試行的に使用した試験問題蓄積・管理システムは、「小問形式」を前提としていたが、現行の共通テストで出題しているような、複数の小問を組み合わせた「大問形式」の試験問題を大量に作成・蓄積・管理するのであれば、システム設計もそれに合わせて変更する必要がある。
・問題バンク構築には、より多くの問題を効率よく作成することが重要であるため、令和２年度に問題作成 WG において、一つの問題（これを「種問題」と呼ぶ。
）から、同様な形式の問題（これを「派生問題」と呼ぶ。
）をどのような考え方でどの程度の問題数を作成することができるかを検証したが、このような種問題から派生させて複数の問題を作成するという手法をとる場合27、した上で IRT に基づく CBT（以下「CBT-IRT」という。
）で実施すると仮定した上で試行的に問題バンクを構築し、主に問題作成の生産性を中心にそのフィージビリティ（実現可能性）を検証した。調査研究の詳
細は令和３年報告書の付録２「問題バンク構築に係る調査研究について～CBT-IRT での共通テスト「情報」の問題作成に係るフィージビリティの検証～（報告）」で詳述している。
26

令和３年報告書の付録２「問題バンク構築に係る調査研究について～CBT-IRT での共通テスト「情報」の問題作成に係るフィージビリティの検証～（報告）」27

問題バンク構築には、より多くの試験問題を効率よく作成することが重要であるため、令和２年度に問題-27-

種問題と派生問題の関係が分かるように試験問題を蓄積・管理する必要がある（種問題に修正が発生した際に、関係する派生問題全てを一斉に修正する必要が生じるなどするため。
）。
(2) 問題作成体制について
・情報セキュリティ（特に機密情報の管理）の確保の観点から、遠隔での作業が認められるかについて慎重な検討が必要。
・問題作成システムでの問題作成・点検を遠隔で行う場合、良質な問題の創出に不可欠な委員同士の協議が十分できるかについて慎重な検討が必要。
(3) 難易度・識別力の付与について
・プレテスト等により事前に推定した問題の難易度や識別力などの項目パラメタを、試験問題と併せてシステム上に保存することが必要。なお、難易度や識別力は一度付与された後も変動するものであることにも留意が必要。
(4) 問題バンクのメンテナンスについて・曝露・漏洩により項目パラメタが変動した問題を引退させて新しい問題を問題バンクに入れるな
ど、頻繁な問題の入替が必要であり、そのことを念頭においてシステム設計が必要。
・統計データや社会情勢等の変動に伴う試験問題の修正が必要。大量の試験問題の中から修正すべき問題を確実にピックアップできるよう、試験問題ごとに適切にメタ情報を付ける必要がある。
大量の試験問題の中からメンテナンスが必要な問題を確実に確認するメタ情報付けは容易ではないが、例えば、問題文中のキーワードと思われるものを自動検出してメタ情報候補として提案させるなどの機能は最低限必要。
今回の調査研究で試行的に使用した「試験問題蓄積・管理システム」の成果については、今後の大学入試センターにおける CBT や IRT に関する調査研究において活用していくとともに、他機関等から依頼があれば成果物を共有していくこととしている。

作成 WG において、一つの試験問題（これを「種問題」と呼ぶ。
）から、同様な形式の試験問題（これを「派生問題」と呼ぶ。
）をどのような考え方でどの程度の数の試験問題を作成することができるかを検証し
た。

-28-

第３章 将来的な大規模 CBT システムの開発に向けて
令和３年報告書を受けて、令和７年度共通テストへの CBT の導入はされないこととなったが、共通テストのような大規模な試験を CBT で実施する場合、実施のための CBT システムの開発が重要になってくる。
令和３年報告書にもあるとおり、大規模入学者選抜において CBT を活用することについては、
これまで検討してきた CBT を導入していく上での課題、長所や短所などを把握した上で、CBT の導入自体を目的化することなく、CBT を導入することの本来の意義を十分に引き出しながら、受験者や保護者を含む社会全体が納得できる形を模索して、国内外の最新の動向も踏まえつつ、引き続き調査研究に取り組んでいくことが重要である。CBT システムに関しては、現時点では、個別大学の入学者選抜において利用されている CBT システムをベースに、実証的な研究を積み重ねていくことが重要と考える28。
また、実際に CBT 試験を実施する場合は、問題作成や出題・解答に加え、出願、採点、成績提供など全てのプロセスをデジタル化する方が円滑な試験実施が可能となり、CBT 導入のメリットを生かすことができる。その場合、【図 11】のような流れを実現する CBT システムを構築することが考えられる。

【図 11】共通テストの実施をデジタル化した場合の流れ（イメージ）
令和７年度共通テストへの CBT の導入は見送られることになったが、今後、共通テストを CBTで実施するという段階に歩を進めることとなった場合、CBT システムの構築について留意すべき点をここに記録する。ただし、以下に述べるのは、あくまでも現時点の技術を前提とした知見であ28

大学入試センターでは、令和４年６月に「個別大学の入学者選抜における CBT の活用事例集」を公表したが、その中で、個別大学の入学者選抜において利用されている CBT システムについても紹介している。

-29-

る。また、実際に大規模入学者選抜において CBT を活用する上では、CBT システムの構築に関する課題を克服するだけではなく、令和３年報告書に示した実施体制上の課題についても克服する必要があることを付記する。
○高水準な非機能要件の担保
まず、共通テストのような大規模でハイステークスな使われ方をする試験を CBT で実施する場
合、システムには高水準な非機能要件が求められる。例えば、以下のような要件が挙げられる。
＜可用性＞
・大規模システムで試験継続する仕組み
・端末故障などの発生時にも試験継続する仕組み＜運用性・保守性＞
・年間スケジュールに合わせて確実に試験の準備・実施をする仕組み＜セキュリティ＞
・受験者の情報、試験の情報、解答の情報などが漏洩しない仕組み○システム開発の進め方
第１章３(1)でも言及したとおり、令和３年３月に内閣官房情報通信技術（IT）総合戦略室から「アジャイル開発実践ガイドブック」が公表され、政府情報システム開発においても、従来の開発スタイルとは別にアジャイル開発という選択肢を設ける必要があることが示されるなど、官公庁が発注するシステム開発の手法としてもアジャイル開発が取り上げられるようになった。
今回、大学入試センターが外部委託した TAO の PCI の調査研究も、発注当初に開発内容を全て決定することは困難であった。また、より良い開発内容とするためには、開発過程でモックアップ
やプロトタイプで具体的な開発内容を確認した上で改善意見を出すことが望ましいことが想定された。このため、TAO の PCI の調査研究については、「月に１回程度、開発状況について報告した
り、開発内容について協議したりすること」、「報告・協議の際に、進捗状況が分かる資料や、モックアップ、プロトタイプを適宜提示すること」、「協議した内容を、可能な限りその後の調査研究に反映させること」という内容を仕様書に盛り込んだ。また、仕様策定の段階はもちろん、契約後に大学入試センターと受注者が協議をする際にも、有識者会議の委員に参画を求め、専門的かつ多角的な意見をいただき、PCI モジュールの開発に反映させた。
このように、複数の外部有識者に協力いただきながらアジャイル方式に近い形でシステム開発を進めるという方法は、大学入試センターにおける TAO の PCI モジュール開発においては非常に有効な手段であった。
○巨大なシステムを開発する際の留意点
今回の大学入試センターでの調査研究では実施しなかったが、仮に【図 11】のように、共通テス
トにおいて、試験そのものに加え、出願、採点、成績提供など全てのプロセスをデジタル化する場
合、巨大なシステムを開発・構築・運用する必要がある。システムが巨大になる場合、開発の進め-30-

方について入念に検討する必要がある。
例えば、リスクを分散することを重視するのであれば、機能ごとにシステムを分け、別々に開発したものを最終的につなぎ合わせる「コンティネンタル方式」で開発を進めることが適切ではないか、などの検討が必要となる。今後、共通テスト実施のプロセスにデジタル技術を導入する際には、どのようにシステム開発を進めるのか、有識者にも意見を聞きながら綿密に計画を練るべきである。
【コラム③】大規模入学者選抜における CBT の活用の可能性
１．はじめに筆者は、文部科学省の委託研究プロジェクト"情報学的アプローチによる『情報科』大学入学者選抜における評価手法の研究開発" に参加し、その一部として、多数の受験者に対して CBTによる大学入試を実現する際の課題を明らかにし、その解決策を提案した。
本稿で、大学入学共通テスト規模の大規模な CBT を実現する際の課題のうち、特に重要な課
題、及び、その具体的な解決策を示す。なお、ここでは、現在の大学入学共通テストの枠組みの中で、全科目について CBT を実施することを前提に考えている。
２．大規模 CBT の実現にむけての課題
大規模な CBT を実現する際の課題うち、特に重要なものを以下に示す。
(課題１) インターネット経由の妨害対策：CBT による試験に対して、様々な妨害の方法が考えられるが、特に考慮しないといけないのは、インターネット経由での妨害である。残念ながら、インターネットに接続したまま、この妨害を完全に防御するのは困難と言わざるを得ない。
(課題２) 公平な試験環境の提供：受験者が対面する端末のハードウェア、利用可能なソフトウ
ェア、及び利用可能なネットワークを合わせて試験環境と呼ぶことにする。すべての受験者に対して、試験環境に差異がでないように配慮する必要があるが、どこまで、共通化できるかが問われる。
(課題３) トラブルへの対策：試験中の端末のハードウェアの故障、ソフトウェアのトラブル、
及び、ネットワークのトラブルなどは不可避と考えておかねばならず、その対策が必要である。
(課題４) 端末の電源供給対策：ノートパソコン等のモバイル端末の場合、その電源を安定的に提供する必要がある。バッテリーをフル充電していても、丸一日の試験期間を追加充電なしに済ませるのは現状では難しい。試験が二日にわたるとき、すべての端末を二日目が始まるまでにフル充電しなければならず、これも大変な作業となるだろう。
３．使えない既存の設備
大規模 CBT の実現に際して、まず、既存の端末やネットワークが使えるかどうかを検討してみる。残念ながら、大規模 CBT の会場として想定される大学や民間の試験会場で、既存の端末
及びネットワークを活用するのは困難と言わざるをえない。以下、その理由を説明する。
(1) 既存のパソコン端末
大学等の各試験会場では、試験に先だって各端末の試験環境を設定し、試験の終了後にもと-31-

に戻す必要があるが、そもそもこの設定/復旧作業自体がシステム構築作業そのものであり、簡単なものではない。また、各会場の通常の研究/業務にできるだけ支障がないように、この作業は短期間(1 日程度)で行う必要がある。大学等の各会場のパソコン端末の管理方法は、それぞれ異なっているので、それぞれの管理方法に応じた個別の方法で対処しなければならず、統一的な作業方法は存在しない。そのためすべての試験用端末が正しく設定されているのかどうかを把握することも難しい。
多くの大規模な大学では、それぞれ方法は異なるが、利用者のログインの際に、教育用のパソ
コンのディスクイメージを初期状態に戻す機能を有している。この仕組みを利用すれば、試験環境を提供するためのディスクイメージをインストールし、試験後に元に戻すことは比較的容易に行える。しかし、このような仕組みを有する大学であっても、教育用のパソコンとして管理されている端末の台数は多くても数百台から千数百台程度であり、一大学が収容を期待される受験者数には遠く及ばない。学内のパソコンをかき集めたとしても、機種が違ったりすると上記のよう仕組みの中に組み込むことは困難である。このような仕組みがない場合、試験環境を短期間に、かつ、一つのミスもなく構築することは容易なことではない。
(2) 既存の LAN
試験用の端末を収容するネットワークは、大学内等の既存のネットワークから、少なくとも論理的に切り離されていなければならない。そのためには、VLAN もしくは VPN を利用するのが一般的である。学内 LAN に SDN(Software Defined Network)が導入されているならば、比較的容易に一時的に試験のための VLAN を張ることもできるが、SDN が導入されている大学
は多くはない。各大学によって、学内 LAN の構成方法は様々であるので、統一的な方法で試験用のネットワークを構築することができない。また、学内 LAN の構成方法によっては、試験の期間だけ、一時的に、しかも、短時間で VLAN あるいは VPN を導入するのは容易ではない。
以上のことから、各大学・民間の試験会場などの既存のネットワークは利用できないと考えるべきである。
４．課題の解決方法
以下の各項目では、２で挙げた各課題の解決策を示す。
(1) インターネット経由の妨害対策
インターネット経由の妨害対策の対策としては、少なくとも試験の実施中はインターネットとの接続を遮断するか、もしくは、完全にクローズドなネットワークを構築するしかない。
インターネットとの接続を遮断する具体的な方法を文献［2］の解決策 1 として示した。解決策
１では、試験そのものはインターネットを利用せずにスタンドアローンで実施することを提案している。スタンドアローンで実施することに不都合は生じないが、解答途中の答案のバック
アップのことを考えると、ネットワークを利用できる方が都合が良い。そのため、解決策 1 では、試験会場の各部屋毎(必ずしも部屋と 1 対 1 対応でなくても良い)に、peer-to-peer のネット
ワークを構築して、そこで答案のバックアップを行う方法を提案している。
完全にクローズドなネットワークの構築方法については、文献［2］の解決策 2 として示した。
解決策 2 は、大規模 CBT 専用の MVNO(仮想移動体通信事業者)による L2-VLAN を構築する-32-

ものであり、この L2-VLAN にすべての試験用端末を収容するものである。各端末は、LTE も
しくは 5G のネットワークに直接繋がることを想定している。この方法でも、試験そのものはスタンドアローンで実施するが、試験中の各受験者の答案のバックアップにこのネットワーク
を利用する。このネットワークは、試験前の問題及び試験環境の配付、試験後の答案の回収でも利用できるだろう。
(2) 公平な試験環境の提供
CPU の速さの違いなどは、あまり重要ではないように思えるが、受験者の立場からすると許容し難いと判断されるかもしれない。一方、画面の解像度の差異やネットワークの伝送速度・遅延の影響は少なくない。結局、公平な試験環境を提供するという点から考えると既存の端末を活用するのは難しく、新規に端末を購入するしかないと考えるべきだろう。
購入した試験用端末を複数年に渡って活用できるかについて考えると、その保管方法(保管のための場所・ 設備も必要)、ならびに、翌年の試験のためのシステムの再構築、及びバッテリーの充電方法など、多くの設備と費用、及び、人手が必要であり、現実的ではない。
結局のところ、受験者数分の端末を毎年新規に購入するしかないと思われる。これには相当の費用(例えば、端末として Chromebook のようなものを想定すると、1 台あたり 4～5 万円、50 万台購入すると約 250 億円)が必要となるが、試験の後、この端末を GIGA スクールの端末として、もしくは、各大学での BYOD 端末として活用すれば良いのではないだろうか。
(3) トラブルへの対策
様々なトラブルに対処するためには、各受験者の答案のバックアップを保持しておき、トラブルが起きた際に、短い時間でバックアップから各個人の答案を回復できる仕組みを用意しておく必要がある。答案のバックアップの方法として、常時 USB メモリに保存するという方法が考えられる。しかし、受験者数が数十万人規模になると、USB メモリの管理が非常に困難になるだろう。また、USB メモリの故障も不可避となるので、その対策も必要である。そこで、答案のバックアップは、ネットワークの利用が適切と考える。この方法については、既に(1)で述べた。
(4) 端末の電源供給対策
モバイル端末のバッテリーの残量を管理する方法を、文献[1]の解決策 1 で示してはいるが、その方法は必ずしも容易ではない。試験が二日にまたがる場合に二日目に備えてバッテリーをフル充電するのも厄介な作業となる。そこで、費用はかかるが、試験会場となる各教室に 100 ボ
ルトの電源コンセントを設置した方が良いだろう。
５．まとめ
数十万人規模での CBT による試験の実施方法について検討した。様々な課題の中で、特に重要な課題を挙げ、その解決方法を示した。一言で言うと、数十万人規模の CBT の実現は容易ではないが、十分な資金と十分な準備期間があれば、技術的には可能である。
参考文献[1]大阪大学 : "情報学的アプローチによる『情報科』大学入学者選抜における評価手法の研究開-33-

発 "、 平成 28～30 年度文部科学省 大学入学者選抜改革推進委託事業 最終成果報告書(2020/05). https://www.mext.go.jp/content/1412881_3_1_1.pdf (2022/01/31 確認 ).
[2]松浦敏雄 : "大規模 CBT の実現のための課題と解決策 "、 情報処理学会 研究報告インター
ネットと運用技術 (IOT) vol. 2019-IOT-44、 No. 17、 pp. 1-7、 ISSN: 2188-8787 (201902-28) .
[3]"The Chromium Projects"、https://www.chromium.org/chromium-os/ (2022/01/31 確認 ).
（執筆：松浦敏雄（大和大学理工学部教授））-34-

＜付 録＞
付録１関係：調査研究の概要
１

大学入試センターにおいて調査研究した PCI について・・・・・・・37

付録２関係：TAO や PCI モジュールの利用方法
２―１ TAO の構築方法について・・・・・・・・・・・・・・・・・・・・39
２－２ 大学入試センターが公開する PCI モジュールのインストール方法について・・・・・・・・・・・・・・・・・・・・47
付録３関係：プログラミング問題 PCI モジュール
３－１ プログラミング問題 PCI モジュール 操作マニュアル（BPS 株式会社）
・・・・・・・・・・・・・・・・・・・・53
３－２ プログラミング問題 PCI モジュール ソースコード説明書（BPS 株式会社）
・・・・・・・・・・・・・・・・・・・・73
３－３ プログラミング PCI モジュール 問題例とその作成方法(①バブルソート問題)
・・・・・・・・・・・・・・・・・・・・81
３－４ プログラミング PCI モジュール 問題例とその作成方法(②シーザー暗号問題)
・・・・・・・・・・・・・・・・・・・・89
付録４関係：散布図 PCI モジュール
４－１ 散布図 PCI モジュール 操作マニュアル（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・・99
４－２ 散布図 PCI モジュール ソースコード説明書（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・ 127
４－３ 散布図 PCI モジュール 問題例とその作成方法・・・・・・・・・ 131
付録５関係：クロス集計 PCI モジュール
５－１ クロス集計 PCI モジュール 操作マニュアル（データアクセス株式会社）
・・・・・・・・・・・・・・・・・・・ 139
５－２ クロス集計 PCI モジュール ソースコード説明書(データアクセス株式会社)
・・・・・・・・・・・・・・・・・・・ 171
５－３ クロス集計 PCI モジュール 問題例とその作成方法・・・・・・・ 175
付録６関係：調査研究から明らかになったこと
６－１ 教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（プログラミング問題） 調査研究報告書・・・・・・・・・・183
６－２ 教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究
業務（データ活用問題） 調査研究報告書・・・・・・・・・・・・195

-35-

-36-

大学入試センターにおいて調査研究したPCIについて

付録１

大学入試センターでは、CBT での「情報Ⅰ」の出題に関する調査研究の中で、PCIについても調査研究し、「情報Ⅰ」の問題をCBTプラットフォーム「TAO」などで出題できるよう、以下の３種類のモジュールを開発した（https://github.com/rdncueeにおいて公開。）。
*PCI：TAOなど QTI (Question & Test Interoperability)規格に準拠したCBTシステムにおいて情報技術を利活用する試験問題や独自形式の試験問題を導入するための取り決め。

①プログラミング問題PCIモジュール

指定した内容のプログラムを「短冊」の並び替えにより構築させるといった問題形式によりプロ
グラミング問題を出題する。

ドラッグ・アンド・ドロップで短冊を並び替えて解答する。

プログラム実行エリアで作成したプログラムを実行し、結果を確認することもできる。

②散布図PCIモジュール

TAO の解答画面で散布図を作成し、その散布図、回帰直線及び相関係数等を基に試験問題に解答させる。
受験者が散布図の縦・横項目を選択する。

作成した散布図の回帰直線や相関係数等を表示させることもできる。

③クロス集計PCIモジュール

TAO の解答画面でクロス集計を行い、その集計結果を基に試験問題に解答させる。

受験者がクロス集計表の縦・横項目を選び、集計する項目や演算を選択する。

クロス集計した結果をグラフ化することもできる。
（注）今回公表するPCIモジュールは大学入試センターが実施した調査研究の成果物であり、確実な動作を保証するものではありません。

-37-

-38-

付録２－１

CBT プラットフォーム TAO の構築方法について
令

和

４

年

６

月

独立行政法人大学入試センター
TAO は、Open Assessment Technologies S.A.社が保守・管理している CBT のプラットフォームであり、IMS Global Learning Consortium（IMS-GLC）が策定した QTI (Question& Test Interoperability)と呼ばれる Computer Based Testing (CBT)の技術標準の一つに準拠して開発されている。TAO はソースコードが公開されており、無償で利用できる（オープンソース）。現在（令和 4 年６月）
、TAO を使用できるように構築する方法としては、・GitHub（https://github.com/oat-sa/package-tao）からソースファイルをダウンロード
してサーバに環境を構築する
・Docker と呼ばれるコンテナで実行させて構築するという２通りの方法がある。
ここでは、Windows で Docker を用いて TAO を構築する方法について紹介する。
１．Docker Desktop のインストール※事前に WSL2 をインストールしておく。
(1) 次の URL から Docker Desktop のインストーラをダウンロードする。

https://docs.docker.com/desktop/windows/install/-39-

(2) ダウンロードされたファイル「Docker Desktop Installer.exe」を実行し、インストー
ルする。

(3) 次の画面が表示されたら OK をクリック。

(4) 「Installation Succeeded」と表示されたらインストール完了。

-40-

２．TAO のインストール(1) コマンドプロンプトを起動させる。
（（Winodws キー）＋［R］キーを押し、表示される「ファイル名を指定して実行」

画面の「名前」入力ボックスに「cmd」と入力して OK ボタンをクリックする。
）(2) コマンドプロンプトで以下のコマンドを実行する。

>docker run -ti --name taotesting-core -p 8080:80 taotesting/core:latest-41-

(3) （Docker に TAO がインストールされる。）(4) 次のメッセージを確認する（TAO の起動が完了）（インストール完了のメッセージ）[2022-06-06 05:12][notice]

Installation successful.

Execution of Script tao/scripts/taoInstall.php completed[+] TAO installation complete[+] Starting webserver[+] Starting php-fpm[+] You may open TAO in your browser now、 using the following link: http://localhost:8080[+] Application details username: admin & password: admin.

-42-３．TAO の表示(1) Web ブラウザ Chrome を起動し、アドレスバーに以下の URL を入力し TAO のログ
イン画面を表示させる。

http://localhost:8080(2) TAO のログイン画面が表示される。

(3)「Get started with TAO」が表示されたら、適当な項目（ここでは「Items」）を選択して[Go to Items]をクリックする。

-43-

(4) TAO の Items 画面が表示される。

４．TAO の表示を日本語化する(1) 右上のメニューをクリックして、「User Settings」を選択する。

-44-

(2) 「My Settings」で、以下を設定して Save ボタンをクリックする。
Interface language：JapaneseTime zone：Asia/Tokyo（(3) メニューが日本語化される。
）

参考文献[1] A New、 Easier Way to Get Started Building & Delivering Digital Assessments with TAO
Core、https://www.accelerate.taotesting.com/core-docker-install、 （参照日：2022 年 5 月
30 日）

-45-

-46-

付録２－２
大学入試センターが公開する PCI モジュールのインストール方法について
令

和

４

年

６

月

独立行政法人大学入試センター

独立行政法人大学入試センター（以下「大学入試センター」という。）では、IMS Global Learning
Consortium（IMS-GLC）が策定した Portable Custom Interactions (PCI)に準拠した、「情報Ⅰ」の出題モジュールを開発した1。開発した以下の三つの PCI モジュールを TAO にインストールする方法を紹介する。

・プログラミング問題 PCI モジュール（Code Block Programming (CBP)）
短冊型コードを用いてプログラミング問題を出題するモジュール
・散布図 PCI モジュール（Scatter Plot Interaction (SPI)）
散布図や回帰直線、相関係数などを用いたデータ活用問題を出題するモジュール
・クロス集計 PCI モジュール（Pivot Table Interaction (PTI)）
クロス集計やグラフを用いたデータ活用問題を出題するモジュール（注１）今回公表する PCI モジュールは大学入試センターが実施した調査研究の成果物であり、確実な動作を保証するものではありません。
（注２）今回公表する PCI モジュールは、TAO 3.3.0-RC02 の環境で安定に動作するように開発されていますが、現在、最新バージョンとして TAO 3.5 が公開されています。TAO 3.5 でこれらの PCI モジュールを動作させるためには、別途 TAO 上での設定が必要です。この設定方法
については本資料の３．で紹介します。

1

PCI とは、IMS-GLC が策定した QTI (Question & Test Interoperability)に準拠した CBT プラットフォー

ムに情報技術を利活用する試験問題や独自形式の試験問題を導入する方法である。大学入試センターが PCI
モジュールを開発した背景や開発の経緯については、「CBT での「情報Ⅰ」の出題に関する調査研究について（報告）」（令和４年６月独立行政法人大学入試センター）を参照されたい。

-47-

１．出題モジュールのダウンロード(1) 大学入試センターの GitHub ページ（https://github.com/rdncuee）へアクセスする。次の図のような画面が表示される。ダウンロードしたい PCI モジュールを選択する。

散布図

プログラミング問題

クロス集計(2) 画面中の①～③の順にクリックし、「Download ZIP」から出題モジュールをダウンロードする（保存先は任意）
。

①
②

③

-48-

２．TAO への出題モジュールのインストール(1) TAO を開き、画面上部の「設定」（④）から「PCI(Portable Custom Interactions)」
（⑤）を選
択する。

④

⑤

(2)「インタラクション追加」（⑥）を選択する。

⑥-49-

(3) 「参照」（⑦）からインストールする出題モジュールの zip ファイル（１．(1)でダウンロード
したもの）を選択する。
（注）出題モジュールの zip ファイルは，GitHub からダウンロードして展開（解凍）後，再度，圧縮してください。GitHub からダウンロードされたままの zip ファイルは， Tao で認識されないことがあります。また，Tao にアップロードする zip ファイルは，直下に出題モジュー
ルのファイルが配置されるように圧縮してください。具体的には，(1)展開されたフォルダを選択し，(2)右クリック，(3)圧縮を選択するのではなく，(1)展開されたフォルダ内のファイルを全て選択し，（2）右クリック，(3)圧縮を選択してください。

⑦(4) 「アップロード」（⑧）を選択する。

⑧-50-

(5) PCI モジュールがインストールされる。⑨のように「アイテム」画面の左側にインストールした PCI モジュールのアイコンが表示されればインストールが完了している。

⑨(6) インストールした PCI モジュールの使用方法等については、「CBT での「情報Ⅰ」の出題に関する調査研究について（報告）」（令和４年６月独立行政法人大学入試センター）中の以下の資料で御確認いただきたい。
・プログラミング問題 PCI モジュール（Code Block Programming (CBP)）
付録３－１

プログラミング問題 PCI モジュール 操作マニュアル（BPS 株式会社）

付録３－２

プログラミング問題 PCI モジュール ソースコード説明書（BPS 株式会社）

付録３－３

プログラミング PCI モジュール 問題例とその作成方法（①バブルソート）

付録３－４

プログラミング PCI モジュール 問題例とその作成方法（②シーザー暗号）・散布図 PCI モジュール（Scatter Plot Interaction (SPI)）
付録４－１ 散布図 PCI モジュール 操作マニュアル（データアクセス株式会社）
付録４－２ 散布図 PCI モジュール ソースコード説明書（データアクセス株式会社）
付録４－３

散布図 PCI モジュール 問題例とその作成方法

・クロス集計 PCI モジュール（Pivot Table Interaction (PTI)）
付録５－１ クロス集計 PCI モジュール 操作マニュアル（データアクセス株式会社）
付録５－２ クロス集計 PCI モジュール ソースコード説明書(データアクセス株式会社)
付録５－３ クロス集計 PCI モジュール 問題例とその作成方法-51-

３．TAO 3.5 で動作させるための設定
今回公表する PCI モジュールは、TAO 3.3.0-RC02 の環境で安定に動作するように開発されているが、現在、最新バージョンとして TAO 3.5 が公開されている。TAO 3.5 でこれらの PCI モジュールを動作させるためには、別途 TAO 上での設定が必要となる。
ここでは、Windows で Docker を用いて構築した TAO 3.5 において PCI モジュール動作させるための設定方法について紹介する。
（注）TAO 3.5 の環境での動作検証は完了しておらず、安定に動作しない可能性があります。
(1) Docker を開き、「OPEN IN TERMINAL」を選択します。

(2) 以下のターミナルが開く。

(3) ターミナルに以下のコマンドを入力する。
# cd /var/www/html/tao/views/js# ln -s ../../install/js/jquery-ui-1.9.2.custom.min.js jqueryui.js-52-

付録３－１

プログラミング問題PCIモジュール
操作マニュアルversion 1.0

目次【共通項目】【出題者用】

ログイン/ログアウト

3【受験者用】

アイテム(テスト)の作成/保存/削除

4【採点者用】

問題の作成

5

画面説明

6

短冊型コードの種類

11

短冊型コードの基本プロパティ設定

12

試験問題タブの操作

16

短冊型コードのエラーと対処法

19

短冊型コードの操作

20

正答管理タブでの短冊の操作

21

実行結果正答の確認

23

実行結果正答の確認ボタン

24

実行ボタン押下時のエラー内容と対処方法

25

JavaScriptの確認

26

テスト結果の確認方法

27

受験者の新規追加/削除

28

受験者のインポート

29

グループの追加/削除

30

テストの配信31

問題を保存・再編集するときの注意事項

32

受験の手順

35

採点の手順

36

採点の手順

37

RESPONSE JSON

38

2

-53-

ログイン/ログアウト
ログイン
1.

ログイン画面へアクセスします2.

ログインIDとパスワードを入力します3.

[Login]ボタンをクリックします

ログアウト
1.

ログイン後の画面右上のボタンをクリックします
(赤枠内)

3

アイテム(テスト)の作成/保存/削除①⑤

アイテムの作成手順
3ページの手順でログイン後、下記の手順で作成が可能です。

③

1.

ヘッダーの、「アイテム」をクリック

2.

左サイドバーの 「新規アイテム」をクリック

3.

右に編集の表示が出たら、「Label」に任意のテスト④②

名を入力します4.

保存をクリックでアイテムが保存されます

5.

作成したアイテムを選択し、「オーサリング」をクリックで問題を編集できます。

※削除の場合は、削除したいアイテムを選択し、左サイドバーの「削除」をクリックで削除されます4-54-

問題の作成プログラミング問題の作成
左サイドバー内の「Custom Interactions」を展開。中の「CBP」を右の画面にドラッグ&ドロップしでInteractionを展開できます標準Interactionの追加
同様に追加したい標準Interactionのアイコンを右の画面にドラッグ＆ドロップでInteractionを展開できます5

画面説明（試験問題管理タブ画面）
プログラミング問題の設問文の設定とプログラミング問題に必要な短冊型コードを作成する画面です。

12

②

①

⑩

③
④

⑥

⑤

⑦

13

⑧

⑨
11

-55-

6

画面説明（試験問題管理タブ画面）
No

名称

説明

1

試験問題管理｜正答管理タブ

プログラミング問題の試験問題管理タブ画面と正答管理タブ画面を切り替えるタブです。

2

削除

プログラミング問題を削除するボタン。選択時にプログラミング問題を削除します。

3

問題文フィールド

問題文を入力するテキストフィールド。1000文字まで入力可能です。初期値として受験者向けの警告文言を設定しています。必要に応じて編集してください。

4

短冊型コード一覧

プログラミング問題用の短冊型コードを選択するフィールドです。
短冊型コードを追加した順番に表示します。

5

短冊型コード追加ボタン

短冊型コード一覧に短冊型コードを追加するボタンです。

6

解答欄

短冊型コード一覧内の短冊型コードを使ってプログラミングを行うフィールドです。

7

空白追加ボタン

空白を追加するボタンです。

8

実行結果

プログラム実行時に実行結果、出力短冊の出力内容を表示するフィールドです。
最新の50行まで表示します。問題が発生した場合はエラーメッセージ等も表示します。

9

JavaScriptコードボタン

解答欄にプログラミングした短冊型コードの実行コード（JavaScript）を表示するフォームを開くボタンです。

10

基本プロパティフィールド

プログラミング問題の基本プロパティを表示するフィールドです。

11

完了ボタン

プログラミング問題の編集を完了するボタンです。

12

Interactionタイトル

プログラミング問題Interactionのタイトルです。

※選択肢プロパティについては次ページで解説しています7

画面説明(短冊型コードの選択肢プロパティ)
①

No

名称

説明

1

識別子

短冊型コードごとに設定する識別子です。他の短冊型コードと重複しないよう設定してください。

短冊種別

短冊型コードの種別を決定するプロパティです。短冊型コードの種別を変更できます。
※ 短冊型コードの種別については後述します。

実行コード

短冊型コードに割り当てるJavaScriptのソースコードを入力するプロパティです。テキストボックス、ドロップダウンリストを設定する場合、実行コードに適用したい箇所に以下のように入力します。なお、テキストボックス、ドロップダウンリストは、いずれか1つのみ可能です。設定方法の詳細は、後述します。

2

②

入力例)
[テキストボックス]¥textField_123[ドロップダウンリスト]¥selectBox_456

3

③
表示内容

④

入力例)
[テキストボックス]¥textField_123[ドロップダウンリスト]¥selectBox_456[1,2,3]

4⑤

入力許可ワード
5

短冊型コードに表示する内容を入力するプロパティです。受験者の方に向けた表示です。テキストボックス、ドロップダウンリストを表示する場合、表示したい箇所に以下のように入力します。設定方法の詳細は、後述します。

短冊型コード内に設置するテキストボックスに入力可能なワードを指定するフィールドです。
カンマ区切りで複数入力可能な文字列を指定できます。初期値として、以下の内容を設定しています。必要に応じて編集してご利用く
ださい。
初期値：a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9

-56-

8

画面説明（正答管理タブ画面）
プログラミング問題の試験問題管理タブで作成した短冊型コードを並べ替えて正答を設定する画面です。

②

①

11

③

④

⑤

⑥

⑦

⑧

⑨

⑩
12

9

画面説明（正答管理タブ画面）
No

名称

説明

1

試験問題管理｜正答管理タブ

プログラミング問題の試験問題管理タブ画面と正答管理タブ画面を切り替えるタブです。

2

削除

プログラミング問題を削除するボタン。選択時にプログラミング問題を削除します

3

問題文フィールド

問題タブ画面で入力した問題文を表示する。正答管理タブからは編集できません

4

短冊型コード一覧

プログラミング問題用の短冊型コードを選択するフィールドです。

5

解答欄

短冊型コード一覧内の短冊型コードを使ってプログラミングを行うフィールドです。
正答管理タブ画面では、短冊型コード一覧内の短冊型コードをドラッグして解答欄にドロップし、プログラミングを行います。

6

実行結果

プログラム実行時に実行結果、出力短冊の出力内容を表示するフィールドです。
問題が発生した場合、エラーメッセージ等も表示します。最新の50行まで表示します。

7

JavaScriptコードボタン

解答欄にプログラミングした短冊型コードの実行コード（JavaScript）を表示するフォームを開くボタンです。

8

リセットボタン

解答欄に設置した短冊型コードをリセットし、実行結果に表示している内容をクリアするボタンです。

9

実行ボタン

解答欄にプログラミングした短冊型コードの実行コードをJavaScriptとして出力して実行するボタンです。

10

実行結果正答の確認

実行結果の解答を確認するためのモーダルダイアログを開くボタンです。

11

レスポンスプロパティフィールド

プログラミング問題のレスポンスプロパティを表示するフィールドです

12

完了ボタン

プログラミング問題の編集を完了するボタンです。

10

-57-

短冊型コードの種類
No

種別

１

処理短冊型コード

Data[n+1] = tmpなど何らかのJavaScriptコードに関連した処理を行う短冊です。文の末尾に;(セミコロン)が必要です。また、複数行のJavaScriptコードを設定することができます。

２

繰り返し短冊型コード(while)繰り返し処理の短冊型コードです。while短冊型コード内に追加した短冊の実行コードは、以下の通り()内のコードとして扱われます。
while(while短冊型コードの実行コード) {while短冊内に追加した短冊の実行コード}

３

繰り返し短冊型コード(for)

繰り返し処理の短冊型コードです。for短冊内に追加した短冊の実行コードは、以下の通り()内のコードとして扱われます
for(for短冊の実行コード) {for短冊内に追加した短冊の実行コード}

４

条件分岐短冊型コード(If)

条件分岐の短冊型コードです。if短冊内に追加した短冊の実行コードは、以下の通り()内のコードとして扱われます
if(if短冊型コードの実行コード) {if短冊内に追加した短冊の実行コード}

５

条件分岐短冊型コード(If-else)

条件分岐の短冊型コードです。if-else短冊内に追加した短冊の実行コードは、以下の通り()内のコードとして扱います。
if (if-else短冊型コードの実行コード) {if-else短冊内に追加した短冊の実行コード} else {if-else短冊
内に追加した短冊の実行コード}６

出力短冊型コード(print)

出力の短冊型コードです。実行コード内の要素を実行結果フィールドに出力します。
JavaScriptコードを表示した際には、以下のように表示します。
printBlock(出力短冊型コードの実行コード)

短冊イメージ

説明

11

短冊型コードの基本プロパティ設定
基本プロパティでは、短冊型コードの基本的なプロパティを設定できます

基本プロパティ設定
1．選択肢の繰り返し利用
選択肢の複数回利用を有効とするチェックボックスです。有効にした場合、短冊型
コードの選択肢を解答欄にて繰り返し利用することが可能となります。

2．プログラム動作時間
プログラムの動作時間を設定するテキストボックスです。
5〜10秒で設定した時間が経過した場合、強制的にプログラムの実行を中断します。

①
②

12

-58-

試験問題管理タブの操作(短冊型コードの作成)
プログラミング問題の試験問題管理タブ画面は、設問文の設定とプログラミング問題に必要な短冊型コードを作成する画面です。

④②

短冊型コードの追加と操作
1.

「短冊型コード選択肢」上部のボタンから、各種短冊型コードをクリックして追加。

1.

追加した短冊型コードの「実行コード」、「表示内容」等の情報を右サイドバー「選択肢プロパティ」で編集。

1.

短冊型コード選択肢に追加した短冊をドラッグ&ドロップで「解答欄」に短冊型コードを追加する。

1.

試験問題管理タブから、正答管理タブに切り替える。

①
③

13

試験問題管理タブの操作(短冊型コードの固定)
プログラミング問題の試験問題管理タブ画面は、設問文の設定とプログラミング問題に必要な短冊型コードを作成する画面です。

短冊型コードの固定
1. 解答欄で短冊型コードの固定ボタン(①)をクリックします。
1. 固定した短冊型コードは削除アイコンが固定化解除ボタンに①変化します。

1. 固定化を解除したい場合は固定化解除ボタンをクリックしてください。
解答欄で固定した短冊型コードはドラッグと削除が不可になり、短冊型コード選択肢から該当短冊型コードが削除されます。
なお、右メニューの「選択肢の繰り返し利用」を有効化した場合、回答欄の重複したコードの中に固定されていないものがあれば、短冊型コード選択肢からは削除されず、回答欄への追加も可能です。

14

-59-

試験問題管理タブの操作(空白の追加)
プログラミング問題の試験問題管理タブ画面は、設問文の設定とプログラミング問題に必要な短冊型コードを作成する画面です。

空白の追加
空白アイテムは正答管理タブやプレビューなどでは空白として扱えます
空白アイテムには固定や選択肢プロパティの編集などは行えません①

1.

解答欄上部の「空白コードを追加」ボタン（①）をクリックします。

1.

空白が追加されます。他の短冊型コード同様場所を移動したり、ネストができます。

15

試験問題管理タブの操作(削除編)
短冊型コード選択肢からの短冊型コードの削除
短冊型コード選択肢から短冊型コードを削除できます
解答欄に同短冊型コードが配置されている場合は解答欄からも削除されます①②

1.

短冊型コードの右端にある削除アイコン(①)をクリック
します。

1.

削除確認のアラートが表示されるので「はい」をクリックします。

解答欄から短冊型コードの削除
1.

解答欄の短冊型コードの右端にある削除アイコン(②)をクリックします。

1.

アラートなどは表示されず削除されます。また、短冊型
コード選択肢にある同短冊は削除されません。

-60-

16

試験問題管理タブの操作(テキストボックスの追加)
テキストボックスの追加方法
1. 短冊型コードのプロパティ情報＞表示内容に「テキストボックスキー
ワード」を入力してください¥textField_012
固定で必要な文言※パソコン環境によっては、「¥textField_012」というように表示される場合があります。

テキストボックスの識別子

2. テキストボックスの入力許可ワードを設定してください
カンマ区切りで複数入力可能な文字列を指定できます。

実行コードへの追加

テキストボックス付き短冊表示イメージ

表示内容に追加したテキストボックスキーワードと同様の形で追加して
ください。

17

試験問題管理タブの操作(ドロップダウンの追加)
表示内容への追加
1. 短冊型コードのプロパティ情報＞表示内容に「ドロップダウンリスト
キーワード」を入力してください
ドロップダウンリストの識別子¥selectBox_012[1,2,3]固定で必要な文言※パソコン環境によっては、「¥selectBox_012[1,2,3]」というように表示される場合があります。

ドロップダウンリストの選択肢

2. 上記の点線部分の箇所に選択肢を追加してください。
カンマ区切りで最大10個まで追加できます

実行コードへの追加
表示内容に追加したドロップダウンリストキーワードから選択肢を覗いた状態で追加してください。

-61-

18

短冊型コードのエラーと対処方法入力した短冊型コードのプロパティに問題がある場合、以下のエラーを表示します。対処方法をご確認の上、再度入力してください。
エラー内容

発生条件

対処方法

識別子が未入力です。

未入力

識別子を入力してください。

識別子が他の短冊型コードと重複しています。

他の短冊型コードと重複している

識別子重複部分を確認して重複しないよう再設定してください。

実行コードが未入力です。

未入力

実行コードを入力してください。

表示内容に入力したテキストボックスが、実行コードにありません。

表示内容にテキストボックスキーワードが存在す 実行コードにテキストボックスキーワードを入力してるが、実行コードにないください。

表示内容に入力したドロップダウンリストが、実行コードにありません。

表示内容にドロップダウンリストキーワードが存在するが、実行コードにない

実行コードにドロップダウンリストキーワードを入力
してください。

利用できるテキストボックスは一つのみです。

テキストボックスキーワードが複数存在する

テキストボックスのキーワードの重複を削除してください。

利用できるドロップダウンリストは一つのみです。 ドロップダウンリストキーワードが複数存在する ドロップダウンリストの中の重複を削除してください。

表示内容が未入力です。

未入力

表示内容を入力してください。

実行コードに入力したテキストボックスが、表示
内容にありません。

実行コードにテキストボックスキーワードが存在するが、表示内容にない

表示内容にテキストボックスキーワードを入力してください。

実行コードに入力したドロップダウンリストが、表示内容にありません。

実行コードにドロップダウンリストキーワードが 表示内容にドロップダウンリストキーワードを入力し存在するが、表示内容にないてください。

テキストボックスの入力許可ワードが未入力です。 実行コードにテキストボックスキーワードを設定しているが、入力許可ワードが未入力

入力許可ワードを入力してください。

19

正答管理タブでの短冊の操作
正答管理タブ画面は、試験問題管理タブで作成した短冊型コードを並べ替えて正答を設定する画面です。

正答管理タブでの短冊型コードの操作
1.

ラッグ&ドロップで移動し、正答を設定します。

①②

試験問題管理タブで設定した「解答欄」から短冊型コードをド

1.

「実行」ボタンをクリックします。

1.

「プログラムを実行します。よろしいですか？」というアラー
トが表示されたら、「OK」をクリックします。

1.

プログラムの実行に問題ない場合設定した正答が実行結果正答に保存されます。結果は実行結果正答の確認ボタンから確認で③きます。
※このタブでは、実行コードや表示内容の変更はできません。
20

-62-

正答管理タブでの短冊の操作(テキストボックスの正答設定)
解答欄の短冊型コードにテキストボックスを表示した短冊がある場合、その短冊内のテキストボックスを選択すると、テキストボックス内にカーソルを表示して、テキストボックスの解答値を入力可能です。
1.

解答欄にドロップダウン付きの短冊型コードをドラッグ&ドロップします。

1.

ドロップダウンをクリックして正答の選択肢を設定します。

1.

編集が完了したら実行ボタンをクリックして正答を保存します。

※下記の項目はテキストボックスに入力不可となります。
'：シングルクォーテーション"：ダブルクォーテーション!：エクスクラメーション(,)：カンマ
単項演算子
算術演算子
関係演算子
等値演算子
ビットシフト演算子
バイナリービット演算子
バイナリー論理演算子
代入演算子

21

正答管理タブでの短冊の操作(ドロップダウンの正答設定)
解答欄の短冊型コードにドロップダウンリストを表示した短冊がある
場合、その短冊内のドロップダウンリストを選択すると、短冊型コードのプロパティに設定した選択肢を図のように表示して選択可能となります。
1.

解答欄にドロップダウン付きの短冊をドラッグ&ドロップします。

1.

ドロップダウンをクリックして正答の選択肢を設定します。

1.

編集が完了したら実行ボタンをクリックして正答を保存します。

22

-63-

実行結果正答の確認
実行結果正答の確認
1.

正答管理タブで設定した正答を「実行ボタン」をクリックしてコードに誤りがないかを確認してください。

1.

実行結果の欄に「プログラムの実行が完了しました。」と表示されたら、「実行結果正答の確認」をクリックし、正答が保存されていることを確認してください。

①②④③ エラー発生の場合実行に問題がない場合、「実行結果」にプログラムが完了した旨が表示されます。エラーが発生した場合は短冊型コードの組み方の見直しや、試験問題管理タブに戻り、コードの構文や、実行コード等の確認を行ってください。
23

実行結果正答の確認ボタン
実行結果正答の確認
1.

正常に実行結果が保存されている場合、「実行結果正答の確認」ボ
タンをクリックすると左図のようなポップアップが表示されます。

2.

この状態で問題タブに戻ると、下図のような注意文言が表示されます。問題タブ内にて短冊型コードの実行内容や表示内容など何らかのプロパティを変更した場合、実行結果が変わる可能性があることから正答をクリアします。クリアした場合は、再度プログラムの実行を行い、実行結果正答を再度設定してください。

「正答管理タブ画面で使用している短冊型コードを編集した場合は、正答が初期化されます。」

24

-64-

実行ボタン押下時のエラー内容と対処方法「実行ボタン」の押下後、左図の赤枠部の様にエラー内容が表示される場合があります。その際の対処方法について下記を確認してください。

実行ボタン押下時のエラー内容と対処方法
No

エラー表示

対処法

1

エラーが発生しました。変数の利用に誤りがないか確認してください。

変数の型、存在しない変数の参照など、変数の利用に起因したエラーです。短冊型コードの実行コードを確認の上、修正してください。

2

エラーが発生しました。構文に誤りがないか確認してください。

JavaScriptの文法に起因したエラーです。
短冊型コードの実行コードを確認の上、修正してください。

3

エラーが発生しました。配列の利用に誤りがないか確認してください。

値が配列内に存在しないか、許容範囲に無いなど配列の利用に起因したエラーです。短冊型コードの実行コードを確認の上、修正してください。

4

エラーが発生しました。プログラムを再度確認してください。

上記以外の要因でエラーが発生しています。JavaScriptコードを確認の上、短冊型コードの実行コードを修正してく
ださい。

25

JavaScriptコードの確認
JavaScriptコードの確認
1.

JavaScriptコードをクリックします。

2.

「解答欄」に設定されている短冊型コード内の実行コードを読み取り、自動的にJavaScriptに変換して、下記図のようなポップアップにJavaScriptコードを表示します。

26

-65-

テスト結果の確認方法①

テスト結果の確認方法

sample_test
sample01
sample02
sample03
sample04
sample05
sample06②③

1.

上部メニューの中から「結果」を選択してクリックします。

1.

ページ左部のメニューから確認するテストを選択します。

1.

ページに受験者ごとの結果が表示されるので、「View」

受験者A

または「ダウンロード」を選択し、結果を確認します。

受験者B

④

1.

左メニュー、もしくは上部のテーブルをエクスポートからCSV
ファイルでのエクスポートも可能です。

27

受験者の新規追加/削除
受験者の追加
⑥
①

②

②
①

③
④
⑤

1.

受験者>新規受験者をクリックします。

2.

label や名前など各項目を入力します。

3.

Loginに受験者がログイン時に使用するIDを設定します。

4.

パスワードも設定

5.

保存をクリックします。

6.

グループに追加にチェックを入れその下の保存をクリック
で受験者の登録が完了します。

受験者の削除1.

削除したい受験者を左メニューの一覧から選択します。

2.

削除をクリックします。
28

-66-

受験者のインポート
受験者のインポート
②
③

①

1.

受験者>左メニュー>インポートをクリックします。

2.

インポートの種類を選択します。

3.

ボタンからファイルを選択するか、ファイルをドラッグ&
ドロップして追加できます。

29

グループの追加/削除
グループの新規追加

①

③
②

②
①

1.

グループ>左メニュー>新規グループをクリックします。

2.

Labelを入力し、保存をクリックします。

3.

受験対象者とデリバリーがもうすでにある場合はここで選択し、その下の各保存ボタンをクリックで設定できます。
※3の設定は別の項目からも設定できます。

グループの削除
1.

左メニューから削除したいグループをクリックします。

2.

削除ボタンをクリックします。
30

-67-

テストの配信(デリバリーの設定)
デリバリーの新規作成
①
②

④

②

①

③

1.

デリバリー>新規デリバリーをクリックします。

2.

Labelや必要事項を入力します。

3.

保存ボタンをクリックします。

4.

割当からテストを配信したいグループにチェックを入れ、保存をクリックします。

デリバリーの削除
1.

削除したいデリバリーをクリックします。

2.

削除ボタンをクリックします。

31

問題を保存・再編集する際の注意事項
TAOの仕様上、保存後の動作によって作成した問題を再編集する際、データが消えてしまう場合があります。消えない手順、消える手順をそれぞれ解説します。

②

データが消えない保存・再編集方法①

1.

問題を作成後、画面左上の「Save」をクリックし、問題を保存します。

1.

「Items」をクリックし、アイテム一覧に戻ります。

1.

アイテム一覧から該当のアイテムを選択し、「Authoring」③

をクリックすることで問題なく問題を再編集できます。

32

-68-

問題を保存・再編集する際の注意事項
TAOの仕様上、保存後の動作によって作成した問題を再編集する際にデータが消えてしまう場合があります。消えない手順、消える手順をそれぞれ解説します。

②

データが消えてしまう保存・再編集方法①

1.

問題を作成後、画面左上の「Save」をクリックし、問題を保存します。

1.

「Manage Items」をクリックし、アイテム一覧に戻る。

2.

アイテム一覧から該当のアイテムを選択し、「Authoring」
をクリックして再編集を行う。

3.

その後開かれた問題作成画面で、問題を再編集、「SAVE」をすると問題が消えてしまうのでご注意くださ③い。
※上記2の手順で問題から一覧に戻ってしまった場合、一覧画面でブラウザのスーパーリロードを行うことで、再編集が可能になります。また、3の手順で問題を開いてしまった場合は、何もクリックせず、保存せずに「Items」で一覧に戻って
ください。

33

問題を保存・再編集する際の注意事項
TAOの仕様上、保存後の動作によって作成した問題を再編集する際、データが消えてしまう場合があります。消えない手順、消える手順をそれぞれ解説します。

②

データが消えてしまう保存・再編集方法①

1.

問題を作成後、画面左上の「Save」をクリックし、問題を保存します。

④

1.

「Items」をクリックし、アイテム一覧に戻ります。

2.

アイテム一覧から該当のアイテムを選択し、「Authoring」
をクリックして問題作成画面を開きます。

3.

再度問題を開いた状態で、問題の枠をクリックし選択。
短冊の追加やコードの入力等、何も変更を加えない状態で③「SAVE」または、「Items」クリックした際のダイアログ
で保存をすると、問題が消えてしまいます。

34

-69-

受験の手順
①

受験の手順

②

1.

受験者のIDとパスワードでログインします。

1.

テスト一覧から受験したいテストを選びクリックします。

1.

テストが完了したら一番下の「テスト終了」をクリックします。クリック後、解答が送信されます。

35

③

採点の手順
①

採点の手順 - 1②

1.

管理者のIDとパスワードでログインします。

1.

①結果をクリックします。

1.

②テスト一覧より対象のテストを選択します。

1.

③確認したい対象の解答の「view」をクリックします。

③

36

-70-

採点の手順

採点の手順 - 2
RESPONSE・・・実際の解答の中身となります。（詳細は次頁）

37

採点の手順（RESPONSE JSON）
RESPONSE

JSONの構造: 解答の実行結果となります。実行ボタンをクリックしなかった場合、この値は保存されません。
“result”: 解答のJavaScriptのコードとなります。
“code”“codeblock” : 解答の短冊型コードの並び順となります。
: 解答のテキストボックスの入力値となります。
“textbox”“dropdown” : 解答のドロップダウンリストの選択値となります。
受験者が回答した内容

実際に送信された解答のJSON※ 改行コードを取り除いて記載しています。

{"result":[2,3,4,5,6,7,8,9,10],"code":"
a = 1;
var __flag__code_3 = 0; /* SYSTEM */while (a < 10) {__flag__code_3++; /* SYSTEM */if (__flag__code_3 === 1000) throw -10;/* SYSTEM */if (a < 10) {a = a + 1;}
printBlock(a);}","codeblock":[{"id":"code_1","type":"process"},{"id":"code_3","type":"while","nests":[[{"id":"code_4","type":"if","nests":[[{"id":"code_5","type":"process"}]]},{"id":"code_2","type":"print"}]]}],"textbox":[{"123":"10"}],"dropdown":[]}-71-

プログラムの実行結果
システムが付加したコードについては/* SYSTEM */が付きます。
繰り返し短冊型コードを設定した場合、処理回数が規定回数(1000回)を超えないかのチェッ
クコードが自動挿入されます。
出力型短冊は「printBlock（処理）」となります。
解答された短冊型コードid: 識別子
type : 短冊型コードの種類
nests : ネストの中身（繰り返し短冊型コードと条件分岐短冊型コードの場合に付加）

テキストボックス、セレクトボックスの入力値が上から順番に配列内に入ります。
例）「¥textField_123」と入力したボックスに対し「10」と入力し解答した例。
「123」がテキストボックスのキーとして登録され、10が値となっています。

38

-72-

付録３－２

プログラミング問題PCIモジュール
ソースコード説明書
BPS株式会社
2022年03月25日

-73-

目次
1. 適用

3

2. 概要

3

3. ファイル一覧

3

4. ソースコード説明
4.1 プログラムファイル

44

4.1.1 CodeBlockProgrammingInteraction.js

4

4.1.1.1 initialize: function(id, dom, config)

4

4.1.2 Panel.js

4

4.1.3 Rectangle.js

5

4.1.4 ToCode.js

5

4.1.5 Correct.js

5

4.1.6 Answer.js

5

4.1.7 Question.js

5

4.2. 設定ファイル

6

4.2.1 config.js

6

4.3 テンプレートファイル

6

4.3.1 choicePanel.tpl

6

4.3.2 interaction.tpl

6

4.3.3 markup.tpl

6

4.3.4 propertiesForm.tpl

7

4.3.5 rectangle.tpl

7

4.3.6 spacerectangle.tpl

7

4.4 スタイルシート

7

4.4.1 base.css

7

4.5 プロパティファイル

7

4.5.1 pciCreator.js

7

4.5.2 pciCreator.json

7

2

-74-

1. 適用
ド

グ

グ

プ

本書は、教科「情報」の CBT 試験を TAO で実施するためのPCI に関する調査研究業務 (プログラミング問
題)において開発した ロ ラミン 問題のソースコー 説明書に適用します。

2. 概要
PCIとは独自の形式の問題を作成するために必要なインタラクション（問題アイテムをオーサリングするための構成要素）のことです。TAO上ではQTI（標準で用意されている一般的なインタラクション）を使用することで典型的な問題アイテムを作成することができますが、本件での要件である「プログラミング問題（短冊式）」のよ
うな問題アイテムを作成するためのインタラクションが標準では用意されていないため、「プログラミング問題（短冊式）」の問題アイテムの作成を可能にするためにPCIの開発が必要となります。

●
●

●
●
●
●
●
●

TAOアイテムのオーサリング画面において、プログラミング問題（短冊式）が作成できます
CustomInteractions欄に「プログラミング問題（短冊式）」を作成するためのアイコンを追加し、当該アイコンを白紙の問題作成ページにドラッグ・アンド・ドロップすることでプログラミング問題（短冊式）を作成
できます
短冊を並べて構成したプログラムコードの断片に関して、プログラム構文に応じて自動インデンテーショ
ンを行います短冊を並べて構成したプログラムに対する入力をまとめて付与して実行できます
短冊中の空欄に任意の値や式、条件文等を入力できます
短冊の表示ラベルには擬似言語など任意の文字列を設定することができ、短冊ごとに1行あるいは複数行のJavaScriptコードを対応させることができます
問題作成時及び出題時にもプログラムの実行結果を確認できます
TAOの標準に備わっているInteractionsとを組み合わせて問題を作成できます3. ファイル一覧
本プログラムには以下のファイルが含まれます。なお、カスタムインタラクションの動作を保証するため、ディレクトリ構造、ファイル名は下記に示す内容の通りとします。

/├── creator│├── Panel.js│├── Rectangle.js│├── ToCode.js│├── img│├── model│├── renderer│├── tpl│└── widget│├──Widget.js

3

-75-

│

├──choice│├──states││├── Answer.js││├── Choice.js││├── Correct.js││├── Question.js││└── states.js│├──config.js│└──utils.js├── lib├── pciCreator.js├── pciCreator.json└── runtime├── CodeBlockProgrammingInteraction.js└── css├── base.css└── img

4. ソースコード説明
本項では、PCIの動作に必要となる主要なプログラムファイルを記載します。

4.1 プログラムファイル
4.1.1 CodeBlockProgrammingInteraction.js
場所： /runtime/CodeBlockProgrammingInteraction.js
内容： Interactionがロードされた時に呼ばれるファイルで、問題作成者・問題解答者共に動作します。
また/creator/widget/statesのファイルからアクセス出来るため、ある程度関数を集めることができます。getResponseの戻り値が問題解答時の値となります。
※ このファイルのファイル名は、pciCreator.jsonの「typeIdentifier」およびpciCreator.jsの「_typeIdentifier」の値と一致させる必要があります。

4.1.1.1 initialize: function(id, dom, config)
画面がオーサリングされた時に必ず呼ばれる関数で、短冊形コードのネストや、
ドラッグアンドドロップの処理もこの中で実行しています。
また、DOMエレメントを「dom」で継承しているため、jQueryのイベントなどもこの関数の中に記載することができます。

4.1.2 Panel.js
4-76-

場所： /creator/Panel.js
内容： 問題タブ時の短冊クリックされた際にパネル（右側のプロパティ）を作る処理や、パネルの入力値が変わった際に短冊に反映させる処理を行います

4.1.3 Rectangle.js
場所： /creator/Rectangle.js
内容： 短冊を生成したり、短冊内のテキストボックス・セレクトボックスを表示する処理を行います

4.1.4 ToCode.js
場所： /creator/ToCode.js
内容： 作成された短冊を実際のjavascriptコードに変換する処理を行います

4.1.5 Correct.js
場所： /creator/widget/states/Correct.js
内容： 解答タブを選択した時に呼ばれるファイルです。Interactionの「答え」の部分は、interaction.onPci('responsechange', function (response) {correctItems = JSON.parse(response).result
responseDeclaration.setCorrect([response]);});

この部分にあたり、onPciというTAO標準関数を利用しresponseDeclaration.setCorrect([response]);によって答えが保存されます。

4.1.6 Answer.js
場所：/creator/widget/states/Answer.js
内容： 解答タブを選択した時に呼ばれるファイルです。また、解答タブから離れた時の処理もこのファイルに記載します。
- 解答タブの短冊の状態の復元- 解答タブで動かされた際の短冊の保存- その他、onイベントなど動的なイベントが発生した際の処理- 発生したイベントの解除処理

4.1.7 Question.js
場所：/creator/widget/states/Question.js
内容： 問題タブを選択した時に呼ばれるファイルです。また、問題タブから離れた時の処理もこのファイルに記載します。
- 問題タブの短冊の状態の復元- 問題タブで動かされた際の短冊の保存

5

-77-

- 短冊をクリックした際に短冊のプロパティを作成する- その他、onイベントなど動的なイベントが発生した際の処理- 発生したイベントの解除処理

4.2. 設定ファイル
4.2.1 config.js
場所：/creator/widget/config.js
内容： 設定ファイルとなります。
- inputIdMax：設定可能な最大短冊数- inputShowValueMax：短冊の「表示コード」に記入可能な最大文字数（半角文字を1とする）- inputExecValueMax：短冊の「実行コード」に記入可能な最大文字数（半角文字を1とする）- inputarrowValueMax：短冊の「入力許可ワード」に記入可能な最大文字数（半角文字を1とする）- maxLineNum：短冊の「表示コード」に記入可能な最大行数- maxWhileNum：Whileの最大繰り返し回数- inputTextFieldWidth：テキストボックスの横幅の初期値（単位：px）

4.3 テンプレートファイル
テンプレートファイルは、Handlebars.jsテンプレートに基づいたマスタッシュ構文が利用可能となっております。
例）//変数のprint{{<変数名>}}{{'表示したい文字'}}//IF{{#if}}{{else}}{{/if}}

4.3.1 choicePanel.tpl
場所：/creator/tpl/choicePanel.tpl
内容：短冊を選択したときに表示される右側プロパティのテンプレートファイルです。

4.3.2 interaction.tpl
場所：/creator/tpl/interaction.tpl
内容：Interactionの外側のテンプレートファイルです。

6

-78-

4.3.3 markup.tpl
場所：/creator/tpl/markup.tpl
内容：Interactionの内側のテンプレートファイルです。

4.3.4 propertiesForm.tpl
場所：/creator/tpl/propertiesForm.tpl
内容：基本プロパティのテンプレートファイルです。

4.3.5 rectangle.tpl
場所：/creator/tpl/rectangle.tpl
内容：短冊のテンプレートファイルです。

4.3.6 spacerectangle.tpl
場所：/creator/tpl/spacerectangle.tpl
内容：空白パーツのテンプレートファイルです。

4.4 スタイルシート
4.4.1 base.css
場所：/runtime/css/base.css
内容：本Interactionで呼び出されるスタイルシートです。

4.5 プロパティファイル
4.5.1 pciCreator.js
場所：/pciCreator.js
内容：カスタムPCIの標準関数を返すAMDモジュール群です。必ず読み込みが必要です。

4.5.2 pciCreator.json
場所：/pciCreator.json
内容：カスタムPCIのマニフェストファイルです。全ての項目を記入する必要があります。
7

-79-

-80-

付録３－３

プログラミング問題ＰＣＩモジュール
問題例とその作成方法（①バブルソート問題）

作成するバブルソート問題
問題 配列Dataに格納されている値を昇順に並べ替えるバブルソート（隣接交換法）のプログラムを完成させよ。
配列Data89,79,89,23,5,21,22,27,62,98,62,53,35,27,49,50,41,2,5,58,26,48,43,10,23

出題者があらかじめ解答欄に配置する「固定短冊」には、そのことが分かる押しピンのアイコンが付されている。

-81-プログラミング問題PCIモジュールを使用したバブルソート問題の作成方法
１．アイテム（問題）を新規作成する。
(1) ヘッダーの「アイテム」をクリックする。
(2) 左サイドバーの「新規アイテム」をクリックする。

(3) 「Label」欄にアイテムの名前を入力する。
（例「バブルソート」）(4) 保存をクリックしてアイテムを保存する。

２．アイテム（問題）にプログラミング問題PCIモジュールを挿入する。
(1) 上部の「オーサリング」をクリックしてアイテム（問題）の編集画面を開く。

(2) 左サイドバー「Custom Interactions」を展開し中にある「CBP」を右側の画面にドラッグ・アン
ド・ドロップする。
※あらかじめTAOにプログラミング問題PCIモジュールをインストールしておく必要があります。
PCIモジュールのインストール方法については、
本報告書の付録２－２を参照してください。

-82-

３．「解答欄」に固定する短冊型コード（固定短冊）を作成する。
(1) 「短冊型コード選択肢」欄内の短冊タイプをクリックする。
・「process」を２回クリック
・「for」を１回クリック
・「print」を１回クリック（「短冊型コード選択肢」欄内にそれぞれのひな型の短冊型コードが作成される。）(2) ひな型短冊型コード(process)の「code#1」をクリックする。
(3) 右側の「選択肢プロパティ」に表示される項目「実行コード」「表示内容」にそれぞれ次のコードを入力する。
「実行コード」let data = [89,79,89,23,5,21,22,27,62,98,62,53,35,
27,49,50,41,2,5,58,26,48,43,10,23];「表示内容」

Data = [89,79,89,23,5,...(省略)...,43,10,23](4) 「表示内容」がすべて短冊型コードに表示される
ように適当な箇所で改行を入れる。
（例）

Data = [89,79,89,23,5,...(省略)... ↵,43,10,23]

短冊型コードの表示-83-(5) 同様に各ひな型短冊型コードに「実行コード」と「表示内容」をそれぞれ設定する。

ひな型短冊

実行コード

表示内容

processsaigo = data.length-1;

saigo = 要素数(Data)-1

form = 0; m <= saigo; m++

m を 0 から saigo まで↵
1 ずつ 増やしながら繰り返す:

print

data

表示する(Data)

４．短冊型コード（固定短冊）を配置する。
ドラッグ&ドロップ(1) ３．で作成した固定短冊をドラッグ・アンド・ドロップで解答欄に移す。
(2) 解答欄」に配置した短冊コードの右側にある固定
ボタンをクリックする（固定ボタンを押すと、当該短冊は「短冊型コード選択肢」欄から削除される。）(3) 同様に、固定短冊にしたい他の短冊型コードを「解答欄」に配置する。

-84-

５．解答欄に空白コードを配置する。
(1) 受験者がどこに短冊型コード選択肢を配置すれば良いか、分かりやすくするために「空白コード」を配置することができる（必ず配置しなければならな
いわけでない。）。「解答欄」の「＋空白コードを追加」をクリックすると、「空白パーツ」が追加される←追加される(2) 配置された「空白パーツ」を、配置したい場所に
ドラッグ・アンド・ドロップで移動させる。この問題の場合は、短冊型コードのforの繰り返し部分に配置する。

６．受験者が解答時に並べ替える短冊型コード選択肢を作成する。
(1) 「短冊型コード選択肢」欄内の短冊タイプをクリックする。
・「for」を１回クリック
・「if」を１回クリック・「process」を３回クリック←追加される-85-

(2) 各ひな型短冊型コードに「実行コード」と「表示内容」をそれぞれ設定する。
ひな型短冊

実行コード

表示内容

for

n=saigo;n>=m;n--n を saigo から m-1 まで ↵1 ずつ 減らしながら繰り返す:

ifdata[n] < data[n-1]もしData[n] < Data[n-1]:

processdata[n] = data[n-1];

Data[n] = Data[n-1]processdata[n-1] = tmp;

Data[n-1] = tmp

process

tmp = data[n];tmp = Data[n]７．正答を作成する。
(1)「解答」をクリックして解答画面を表示する。

←追加される(2) 短冊型コード選択肢を解答欄にドラッグ・アンド・
ドロップして正解プログラムを作成する。

-86-

８．実行結果を確認する。
(1) 「実行」ボタンをクリックして実行結果を表示し、正しくソートされているかを確認する。
(2) エラーが発生した場合は、「JavaScriptコード」
ボタンをクリックしてソースを確認する。

↑
実行結果が表示される

JavaScriptのソースコードが表示される

９．実行結果正答（正答として登録される解答）を確認する。
(1) 「実行結果正答の確認」ボタンをクリックすると、正答として登録される解答を確認することができる。
※正答管理タブ画面で使用している短冊型コードを編集した場合は、正答が初期化されます。

実行結果正答の確認-87-10．問題文を作成する。
(1) 問題文をInline Interractionsの文字ブロックなどを使用して作成する。
※Programing Interaction（CBP）内を編集すると正答が初期化されるので、別のInteractionsを利用して問題文を作成する。

【参考】作成したバブルソート問題の解答方法「短冊形コード選択肢」（左側）から「解答欄」にドラッグ・アンド・ドロップで短冊を移動させて解答する。

解答を終えたら送信 ボタンを押して解答を提出する。

画面下の 実行 ボタンを押すと、作成したプログラムの実
行結果が実行結果エリアに表
示される

-88-

付録３－４

プログラミング問題ＰＣＩモジュール
問題例とその作成方法（②シーザー暗号問題）

作成するシーザー暗号問題

次頁へ続く

-89-

前頁の続きプログラミング問題PCIモジュールを使用したシーザー暗号問題の作成方法
１．アイテム（問題）を新規作成する。
(1) ヘッダーの「アイテム」をクリックする。
(2) 左サイドバーの「新規アイテム」をクリックする。

(3) 「Label」欄にアイテムの名前を入力する。
（例「シーザー暗号」）(4) 保存をクリックしてアイテムを保存する。

-90-

２．アイテム（問題）にプログラミング問題PCIモジュールを挿入する。
(1) 上部の「オーサリング」をクリックして編集画面を開く。

(2) 左サイドバー「Custom Interactions」を展開し中にある「CBP」を右側の画面にドラッグ・アンド・ドロップする。
ドラッグ・アンド・ドロップ※あらかじめTAOにプログラミング問題PCIモジュールをインストールしておく必要があります。
PCIモジュールのインストール方法については、
本報告書の付録２－２を参照してください。

３．「解答欄」に固定する短冊型コード（固定短冊）を作成する。
(1)「短冊型コード選択肢」欄内の短冊タイプをクリックする。
・「process」を２回クリック
・「for」を１回クリック
・「print」を１回クリック（「短冊型コード選択肢」欄内にそれぞれのひな型の短冊型コードが作成される。）-91-

(2) ひな型短冊型コード（ process ）の「code#1」をクリックする。
(3) 右側の「選択肢プロパティ」に表示される項目「実行コード」「表示内容」にそれぞれ次のコードを入力する。
「実行コード」angougenbun = "ycqwydu jxuhu'i de xuqlud yj'i uqio yv
oek jho de xubb rubem ki qrelu ki edbo iao ycqwydu
qbb jxu fuefbu bylydw veh jetqo...";
let array_angou = angougenbun.split('');
alphabet="abcdefghijklmnopqrstuvwxyz";
let array_alphabet = alphabet.split('');
「表示内容」

この短冊には関係がないものでも、必要な処理を入れておく

Angoubun = ["y"、"c"、"q"、"w"、"y"、"d"、"u"、" "、"j"、…（省略）…]
短冊型コードの表示(4) 同様に各ひな型短冊型コードに「実行コード」と「表示内容」をそれぞれ設定する。
ひな型短冊

実行コード

表示内容

process

var array_hirabun = new Array();

配列変数Hirabun を初期化する

process

shift=10;

shift=10form=0;m<=array_angou.length-1;m++m を0 から 要素数(Angoubun)-1 まで
1 ずつ増やしながら:

print

array_hirabun.join('')

配列をつげて表示する(Hirabun)-92-

４．短冊型コード（固定短冊）を配置する。
(1) ３．で作成した固定短冊をドラッグ・アンド・ドロップで解答欄に移す。

ドラッグ&ドロップ(2) 解答欄」に配置した短冊コードの右側にある固定
ボタンをクリックする（固定ボタンを押すと、当該短冊は「短冊型コード選択肢」欄から削除される。）(3) 同様に、固定短冊にしたい他の短冊型コードを「解答欄」に配置する。

５．受験者が解答時に並べ替える短冊型コード選択肢を作成する。
(1) 「短冊型コード選択肢」欄内の短冊タイプをクリックする。
・「process」を４回クリック
・「if else」を２回クリック←追加される-93-

(2) 各ひな型短冊型コードに「実行コード」と「表示内容」をそれぞれ設定する。
ひな型短冊

実行コード

表示内容

processbangou=array_alphabet.i bangou=差分(Angoubun[m])ndexOf(array_angou[m]);processarray_hirabun[m]=array_ Hirabun[m] = 文字[bangou+shift]alphabet[bangou+shift];processarray_hirabun[m]=array_ Hirabun[m] = 文字[bangou+shift-26]
alphabet[bangou+shift26];

processarray_hirabun[m]=array_ Hirabun[m] =angou[¥selectBox_012]; Angoubun[¥selectBox_012[bangou、shift、
m]]

ひな型短冊

実行コード

表示内容

If elsebangou!=-1

もし bangou != -1 ならば:If elsebangou+shift<=¥textFiel
d_123

もし bangou+shift <= ¥textField_123
ならば:

-94-

６．正答を作成する。
(1)「解答」をクリックして解答画面を表示する。

(2) 短冊型コード選択肢を解答欄にドラッグ・アン
ド・ドロップして正解プログラムを作成する。

７．実行結果を確認する。
(1) 「実行」ボタンをクリックして実行結果を表示し、正しくソートされているかを確認する。
(2) エラーが発生した場合は、「JavaScriptコード」
ボタンをクリックしてソースを↑実行結果が表示される
JavaScriptのソースコードが表示される-95-

８．実行結果正答（正答として登録される解答）を確認する。
(1) 「実行結果正答の確認」ボタンをクリックすると、正答として登録される解答を確認することができる。
※正答管理タブ画面で使用している短冊型コードを編集した場合は、正答が初期化されます。

実行結果正答の確認

９．問題文を作成する。

(1) 問題文をInline Interractionsの文字ブロックなどを使用して作成する。
※Programing Interaction（CBP）内を編集すると正答が初期化されるので、別のInteractionsを利用して問題文を作成する。

-96-

【参考】作成したシーザー暗号問題の解答方法「短冊形コード選択肢」（左側）から「解答欄」にドラッグ・アンド・ドロップで短冊を移動させて解答する。

解答を終えたら送信 ボタンを押して解答を提出する。

画面下の 実行 ボタンを押すと、作成したプログラムの実
行結果が実行結果エリアに表
示される

-97-

-98-

付録４―１

散布図PCIモジュール
操作マニュアルVer.1.0

2022年3月25日

データアクセス株式会社

-99-

目次
1. はじめに .................................................................................................................................... 2
2. TAO への散布図 PCI のインストール ......................................................................................... 3
3. オーサリング ............................................................................................................................. 6
3.1. 散布図問題アイテム作成/編集の全体の手順 .................................................................... 6
3.2. 散布図問題用の既存アイテム選択または新規アイテム作成 ............................................ 6
3.3. 散布図 PCI のドラッグ＆ドロップ～散布図問題で使用する CSV ファイルのアップロード
7
3.4. 散布図の各種設定 ............................................................................................................ 10
3.5. プレビュー ....................................................................................................................... 14
3.5.1. 複数の散布図の表示 ................................................................................................. 15
3.5.2. 外れ値の扱い ............................................................................................................ 17
3.5.3. ブラウザのリロード ................................................................................................. 19
3.6. 多言語対応 ....................................................................................................................... 20
4. 操作ログ .................................................................................................................................. 21
4.1. 操作ログの取得・表示 ..................................................................................................... 21
4.2. 操作ログの見方 ................................................................................................................ 22
4.2.1. データのチェックボックスの操作のログ ................................................................ 22
4.2.2. グラフに対する操作のログ ...................................................................................... 23
4.2.3. [リセット]ボタンの操作のログ ............................................................................... 24
4.2.4. [グラフを追加][グラフを削除]ボタンの操作のログ .............................................. 25
5. おわりに .................................................................................................................................. 26

1

-100-

1. はじめに
本書は、「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（データ活用問題）」に基づき行った研究開発業務において開発した PCI の内、表形式で示されたデータ
を散布図で分析して解答を導き出すような問題（選択肢式など）の、散布図を作成する PCI（以下、「散布図 PCI」と言います）の操作説明書です。

2

-101-

2. TAO への散布図 PCI のインストール
TAO に散布図 PCI をインストールする手順を説明します。
具体的には、TAO 上で以下の操作を行って、散布図 PCI を TAO オーサリング画面の Custom
Interactions 欄に追加して下さい。
① TAO にログインしてアイテム編集画面を開き、任意のアイテムを選択して「オーサリング」
をクリックして下さい。

② Custom Interactions 欄を開き、「カスタム操作の管理」をクリックして下さい。

3

-102-

③ 「インタラクション追加」をクリックして下さい。

④ 散布図 PCI の ZIP ファイルをドラッグ＆ドロップするか、「参照」してファイル選択し、「アップロードする」をクリックして下さい。

4

-103-

⑤ 以上の操作手順により、Custom Interactions 欄に散布図 PCI のアイコンが表示されます。

5

-104-

3. オーサリング
以下の操作について、順に説明します。
✓ 散布図問題アイテム作成/編集の全体の手順✓ 散布図問題用の既存アイテム選択または新規アイテム作成✓ 散布図 PCI のドラッグ＆ドロップ～散布図問題で使用する CSV ファイルのアップロード✓ 散布図の各種設定✓ プレビューによる受験者画面表示の確認
3.1. 散布図問題アイテム作成/編集の全体の手順
以下の手順により、散布図問題のアイテムを作成/編集します。
（１） TAO のアイテム画面にて、既存アイテムを選択または新規アイテムを作成（２） 新たに散布図問題を作成する場合、オーサリング画面にて散布図 PCI を問題作成エリアに
ドラッグ＆ドロップし、散布図問題で使用する CSV ファイルをアップロード（３） 散布図の各種設定を行い、適宜プレビューで確認
3.2. 散布図問題用の既存アイテム選択または新規アイテム作成
TAO にログインし、TAO のアイテム画面にて、散布図問題用の既存アイテムを選択するか、新規アイテムを作成し、「オーサリング」をクリックして下さい。

6

-105-

散布図問題を作成するオーサリング画面が表示されます。以下では、散布図問題を新たに作成する場合の操作手順を説明します。
※作成済みの散布図問題アイテムの編集も可能です。その場合は 3.4 をご覧下さい。

3.3. 散布図 PCI のドラッグ＆ドロップ～散布図問題で使用する CSV ファイルのアップロード
散布図問題を新たに作成する場合の散布図 PCI のドラッグ＆ドロップ～散布図問題で使用する
CSV ファイルアップロードまでの操作手順を説明します。
尚、CSV ファイルは以下の条件を満足する必要があります。この条件を満たさないファイルをアップロードした場合、散布図 PCI の動作を保証しません。
✓ CSV ファイルの文字コードは UTF-8 であること✓ 先頭行はカラム名であること✓ 先頭行のカラム数と 2 行目以降のデータ数が一致すること
この手順が済んでいる既存アイテムの編集を行う場合は、3.4 をご覧下さい。
① Custom Interactions 欄の散布図 PCI のアイコンを問題作成エリアにドラッグ＆ドロップして下さい。ドラッグ＆ドロップ後の表示画面は下表の 4 エリアに分かれています。
No.

エリア名

説明

(a)

問題表示エリア

設問及び(b)(c)を含む問題アイテムを表示する(b)

基データ表示エリア

散布図用にアップロードしたデータを表示する(c)

散布図表示エリア(d)で設定した条件に基づいた散布図を表示する(d)

散布図表示条件設定エリア

使用するデータや散布図の表示条件を設定する

7

-106-

② スタイルエディタ部基本プロパティの「CSV ファイル」の「参照」をクリックして、散布図で使用するデータとなる CSV ファイルをアップロードして下さい。

8

-107-

アップロードが成功すると、CSV ファイルに含まれるデータが問題表示エリアの基データ表
示エリアに表示されています。

9

-108-

3.4. 散布図の各種設定
散布図 PCI は、問題出題時に１つの散布図を予め表示することができます。
オーサリング画面のスタイルエディタ部基本プロパティでは、CSV ファイルのアップロードや問題出題時に予め表示する散布図を含め、散布図の各種設定が可能です。
オーサリング画面を図 1 に示します。設定内容を適宜保存しながら設定作業を行って下さい。
尚、問題作成エリアでは散布図の操作、設定はできません。

図 1

散布図のオーサリング画面

スタイルエディタ部の基本プロパティで設定可能な項目を表 1 に示します。
表 1 の No.欄の➀～⑮は図 1 の➀～⑮に対応しています。
用途欄は各項目の用途を以下の A～C で分類して表示し、項目名欄は日本語表記とカッコ内に英語表記しています。
A:散布図全体に関わる項目
B:問題の出題時に予め表示する散布図を設定する項目
C:受験者が散布図を作成する際の選択肢を設定する項目
表 1
No.

用途

➀

A

➁

A

スタイルエディタ部基本プロパティで設定可能な項目
項目名

説明

CSV ファイル

散布図で使用するデータ（基データ）を(CSV file)CSV ファイルで設定する

データ名

アップロードした基データの受験者画面
10

-109-

備考

➂

A

(Raw data caption)

での表示タイトルを設定する

散布図名

受験者画面に表示する散布図タイトルを(Scatter

Plot

設定する

caption)④

B/C

データ除外欄表示

チェックボックスにチェックを入れるこ

表示等の詳(Plot Excludable)とにより、受験者が外れ値を操作可能とな

細は 3.5.2

る。チェックを入れた場合、さらに以下を

を参照のこ

選択可能

と

・ チ ェ ッ ク 項 目 を 表 示 (Show checked
items):受験者画面に表示する基データの左端にチェック入りのチェックボッ
クスを配置し、チェックを外すことにより外れ値として処理する・チェック項目を非表示(Hide checked
items): 受験者画面に表示する基デー
タの左端にチェックなしのチェックボ
ックスを配置し、チェックを付けることにより外れ値として処理する
⑤

B

グラフ形式

受験者画面に予め表示するグラフのタイ(Graph Type)

プを散布図(Scatter Plot)とバブルチャート(Bubble Chart)から選択して設定す
る

⑥

B

X軸

受験者画面に予め表示する散布図の X 軸(X axis)

項目をプルダウンメニューから選択して
設定する

⑦

B

Y軸

受験者画面に予め表示する散布図の Y 軸(Y axis)

項目をプルダウンメニューから選択して
設定する

⑧

B

グループ別表示

受験者画面に予め表示す散布図のグルー(Group Setting)プ分け項目をプルダウンメニューから選択して設定する⑨

B

バブルサイズ

受験者画面に予め表示する散布図をバブ(Bubble Chart Value)

ルチャートで表示する場合（⑤でバブルチ
ャート選択時）、バブル表示の対象をプル
ダウンメニューから選択して設定する

⑩

B/C

相関係数

受験者画面での相関係数の表示条件を下(a)(b)のチ(Correlation

記の項目毎のチェックボックスにチェッェックパタCoefficient)

クを付けることによって設定する

ーンによる

11

-110-

・表示(Show):チェックを付けると受験者

受験者画面画面に表示する散布図に相関係数を予

表示は表 2

め表示する (a)を参照のこ・受験者が操作可能(Editable by Test-とtaker):チェックを付けると受験者が散布図で相関係数の表示/非表示の操作が可能になる(b)
⑪

B/C

回帰直線

受験者画面での回帰直線の表示条件を下(c)(d)のチ(Regression Line)

記の項目毎のチェックボックスにチェッェックパタクを付けることによって設定するーンによる・表示(Show):チェックを付けると受験者

受験者画面画面に表示する散布図に回帰直線を予

表示は表 3

め表示する (c)を参照のこ・受験者が操作可能(Editable by Test-とtaker):チェックを付けると受験者が散布図で回帰直線の表示/非表示の操作が可能になる(d)⑫B/C決定係数(R²)

回帰直線を表示する設定（(c)または(d)の(e)(f)のチ(Coefficient

チェックボックスにチェックが入った状

ェックパタof Determination)態）時に、受験者画面での決定係数の表示

ーンによる条件を下記の項目毎のチェックボックス

受験者画面にチェックを付けることによって設定す

表示は表 4るを参照のこ・表示(Show):チェックを付けると受験者と画面に表示する散布図に決定係数を予め表示する (e)・受験者が操作可能(Editable by Testtaker):チェックを付けると受験者が散布図で決定係数の表示/非表示の操作が可能になる(f)
⑬
⑭

A
A

配色

表示する散布図のプロットの色合いをプ(Color Scheme)

ルダウンメニューから選択して設定する

操作ログの記録

チェックボックスにチェックを付けるこ(Store operation log)とによって受験者の散布図の操作ログを取得することができる⑮

A

レスポンス識別子

操作ログのカラム名を設定する(Response identifier)

12

-111-

表 2 チェックボックスの設定に基づく受験者画面での相関係数の表示
受験者が操作可能(Editable by Test-taker)
チェック付きチェックなし表示

チェック

・相関係数を受験者画面に予め表示

・相関係数を受験者画面に予め表示(Show)

付き

・受験者による相関係数の表示/非・受験者による相関係数の表示/非表示の操作可チェックなし

表示の操作不可・相関係数を受験者画面に表示しな
い・相関係数を受験者画面に表示しな
い・受験者による相関係数の表示/非表示の操作可表 3 チェックボックスの設定に基づく受験者画面での回帰直線の表示
受験者が操作可能(Editable by Test-taker)

表示

チェック

(Show) 付き
チェック
なし

チェック付きチェックなし・回帰直線を受験者画面に予め表示

・回帰直線を受験者画面に予め表示

・受験者による回帰直線の表示/非・受験者による回帰直線の表示/非表示の操作可表示の操作不可・予め回帰直線を受験者画面に予め・回帰直線を受験者画面に表示しな

表示しない

い

・受験者による回帰直線の表示/非表示の操作可表 4 チェックボックスの設定に基づく受験者画面での決定係数の表示
受験者が操作可能(Editable by Test-taker)

表示

チェック

(Show) 付き

チェック付きチェックなし・決定係数を受験者画面に予め表示

・決定係数を受験者画面に予め表示

・受験者による決定係数の表示/非・受験者による決定係数の表示/非表示の操作可チェックなし

表示の操作不可・決定係数を受験者画面に予め表示
しない・決定係数を受験者画面に表示しな
い・受験者による決定係数の表示/非表示の操作可13-112-

3.5. プレビュー
オーサリング画面で「プレビュー」をクリックすることにより、スタイルエディタ部で設定した内容に基づく受験者画面の表示や操作をプレビュー画面で確認することができます。
プレビュー画面での動作や操作は受験者画面でも同じ動作、操作となります。
また、プレビュー画面で実施した操作の内容は、オーサリング画面の問題作成エリアやスタイ
ルエディタ部の設定内容には反映されません。

14

-113-

表示されたプレビュー画面の「閉じる」をクリックすると、オーサリング画面に戻ります。ア
イテムの編集作業を継続できます。

3.5.1. 複数の散布図の表示
グラフ下部の「グラフを追加」をクリックすることにより、新たな散布図を直下に表示します。
「グラフを削除」をクリックすることにより、当該散布図を削除します。
尚、散布図は、スタイルエディタ部の基本プロパティで予め問題に表示する設定を行った散布図を含め、最大 4 つまでプレビュー画面と受験者画面に表示できます。

15

-114-

16

-115-

3.5.2. 外れ値の扱い
スタイルエディタ部基本アクティビティの「データ除外欄表示(Plot Excludable)」のチェックボックスにチェックを入れると、受験者は散布図にて外れ値の操作が可能になります。
（１）「チェック項目を表示(Show checked items)」にチェック時
オーサリング画面とプレビュー画面の基データ表示エリアに、基データの左端にチェック入りのチェックボックスを配置します。チェックボックスのチェックを外すことにより外れ値として処理します（図 2、図 3）。

図 2

オーサリング画面基データ表示エリア

図 3

プレビュー画面基データ表示エリア（２）「チェック項目を表示(Show checked items)」にチェック時
オーサリング画面とプレビュー画面の基データ表示エリアに、基データの左端にチェック入りのチェックボックスを配置します。チェックボックスにチェックを入れることにより外れ値
17

-116-

として処理します（図 4、図 5）。

図 4

オーサリング画面基データ表示エリア

図 5

プレビュー画面基データ表示エリア

散布図のグラフ上で外れ値を選択すると、基データ表示エリアに該当データをハイライトして表示します。該当データの左端のチェックボックスのチェックを外す（またはチェックを入れる）
ことで、そのデータを外れ値としてグラフから除くことができます（図 6）
。

18

-117-

図 6

外れ値の処理（「チェック項目を表示(Show checked items)」にチェック時）

また、外れ値として除いたデータを元に戻したい場合には、基データ表示エリアの該当データの左端のチェックボックスにチェックを入れる（またはチェックを外す）ことで、そのデータはグラフに再表示されます。
3.5.3. ブラウザのリロード
プレビュー画面でクリック可能であるべきボタンがクリックできない状態となった場合（例えば、複数の散布図を限度数まで表示していないのに「グラフを追加」ボタンをクリックできなくなった場合）、画面のリロード（[Ctrl]＋[F5]）をお試し下さい。

19

-118-

3.6. 多言語対応
散布図 PCI は日本語と英語の表示が可能です。
オーサリング画面スタイルエディタ部アイテムプロパティの「言語」のプルダウンメニューから表示言語を選択して下さい。
Japanese を選択すると日本語で、それ以外を選択すると英語で表示します。

20

-119-

4. 操作ログ
受験者の散布図操作ログの取得・表示の操作と、操作ログの見方について説明します。
4.1. 操作ログの取得・表示
オーサリング画面の基本プロパティ「Store operation log」のチェックボックスにチェックを入れた場合、以下の手順で操作ログを表示、出力できます。
① TAO の「結果」表示画面で対象の試験を選択して、「View」をクリックしてください。

② 操作ログを JSON 形式で画面上に表示します。「CSV エクスポート」ボタンクリックにより、CSV ファイルに出力できます。尚、出力した CSV ファイルの文字コードは UTF-8 であることに留意して下さい。

21

-120-

4.2. 操作ログの見方
4.2.1. データのチェックボックスの操作のログ•

operationo"hideElement"
要素を非表示にする

o"showElement"
要素を表示する•

name"muteCheckbox"

•

value
CSV のカラム名 => 値 の連想配列
カラム名が ＿ID＿ の値はシリアル番号です。

•

例）
[
{
"operation": "hideElement","name": "muteCheckbox","value": {"氏名": "瀬治山 啓之",
"身長 [cm]": 167.83,"体重 [kg]": 62.86,"性別": "男性","年齢": 20,"__ID__": 4},"datetime": "2022-02-04 19:10:58+09:00"},{"operation": "showElement","name": "muteCheckbox","value": {"氏名": "瀬治山 啓之",
"身長 [cm]": 167.83,"体重 [kg]": 62.86,"性別": "男性","年齢": 20,
22

-121-

"__ID__": 4},"datetime": "2022-02-04 19:11:33+09:00"},]
4.2.2. グラフに対する操作のログ[グラフ ID]は "graph1","graph2","graph3","graph4" のいずれか•

operation"change"

•

name
o

[グラフ ID].graphType1..4
散布図(value = 'scatter') or バブルチャート(value = 'bubble')のラジオボ
タンo[グラフ ID].xAxis
x軸o[グラフ ID].yAxis
y軸o[グラフ ID].groupBy
グループ設定o[グラフ ID].bubbleValue
バブル値o[グラフ ID].showRegressionLine
回帰直線を表示する(value = true | false)o[グラフ ID].showCorrelationCoefficient
相関係数を表示する(value = true | false)

•

value
設定値

•

例）
[
{
"operation": "change","name": "graph1.xAxis","value": "身長 [cm]","datetime": "2022-02-04 19:11:45+09:00"
},
23

-122-

{
"operation": "change","name": "graph1.yAxis","value": "体重 [kg]","datetime": "2022-02-04 19:11:46+09:00"},{"operation": "change","name": "graph1.groupBy","value": "性別","datetime": "2022-02-04 19:11:48+09:00"},{"operation": "change","name": "graph1.showRegressionLine","value": true,"datetime": "2022-02-04 19:11:51+09:00"},{"operation": "change","name": "graph1.showCorrelationCoefficient","value": false,"datetime": "2022-02-04 19:11:52+09:00"},{"operation": "change","name": "graph1.graphType1","value": "bubble","datetime": "2022-02-04 19:39:25+09:00"}]
4.2.3. [リセット]ボタンの操作のログ•

operation"resetGraph"•

name"resetButton"
24

-123-

•

value
true

•

例）
[
{
"operation": "resetGraph","name": "resetButton","value": true,"datetime": "2022-02-04 19:41:34+09:00"}]

4.2.4. [グラフを追加][グラフを削除]ボタンの操作のログ•

operationo"showGraph"[グラフを追加]o"hideGraph"[グラフを削除]

•

•

name
o

"addGraphButton"o"removeGraphButton"

value
対象のグラフ ID

•

例）
[
{
"operation": "showGraph","name": "addGraphButton","value": "graph2","datetime": "2022-02-04 19:46:38+09:00"},{"operation": "hideGraph","name": "removeGraphButton","value": "graph2","datetime": "2022-02-04 19:46:40+09:00"
}
25

-124-

]

5. おわりに
散布図 PCI の入手方法については、大学入試センターにお問合せ下さい。

26

-125-

-126-

付録４―２

散布図PCIモジュール
ソースコード説明書
Ver.1.0

2022年3月25日

データアクセス株式会社-127-

1. はじめに
本書は、「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（データ活用問題）」の調査研究業務で開発した PCI の内、表形式で示されたデータを散布図で分析して解答を導き出すような問題（選択肢式など）の、散布図を作成する PCI（以下、「散布図 PCI」と言います）に関して、以下を記述する。
➢ PCI ファイル構成➢ PCI を構成するファイルの説明

1

-128-

2. PCI ファイル構成
本 PCI は Wiquid 社製ツール（PCI Generator for TAO platform、以下、「PCI Generator」と言う）を基に開発した。具体的なファイル構成を図 1 に示す。

図 1

散布図 PCI のファイル構成

2

-129-

3. PCI を構成するファイルの説明
散布図 PCI を構成するファイルの説明を表 1 に示す。
表 1
No.
1

散布図 PCI を構成するファイル

ファイル名
pciCreator.js

ファイルの説明備考

初期化時に作問機能のフックとなる AMD モジ
ュール2

pciCreator.json

サーバとクライアントが pciCreator を記述するために必要なすべてのデータ（名前、ラベル、必要な js、css など）を含むマニフェストファ
イル

3

icon.svg

PCI のアイコン画像

4

markup.tpl

出題画面の HTML テンプレート

5propertiesForm.tpl

スタイルエディタ(オーサリング)の HTML テン
プレート

6Widget.js(PCI Generator が必要とするファイル)

7

Question.js

オーサリング処理の JavaScript

8

states.js(PCI Generator が必要とするファイル)9

DncScatterPlot.amd.js

出題機能のフックとなる AMD モジュール

10base.css

基本のスタイルシート

11

ScatterPlot.css

出題画面のスタイルシート

12material-dashboard.css

管理画面用ライブラリ MaterialDashboard のスタイルシート13

theme.minimum.css

jquery.tablesorter.js のスタイルシート

14bignumber.js

散布図の回帰直線表用ライブラリ

15

chart.js

グラフ描画用ライブラリ

16

i18n.translation.js

多言語対応用ライブラリ17

jquery.csv.js

CSV ファイルのパース用ライブラリ18

jquery.tablesorter.js

基データのソートライブラリ

19

MathJax.js

数式表示用ライブラリ20

renderer.js

出題画面を描画する JavaScript

3

-130-

SVG 形式付録４－３

散布図ＰＣＩモジュール
問題例とその作成方法（ワールドカップデータ分析問題）

作成するワールドカップデータ分析問題（受験者の初期画面）

次頁へ続く

-131-

前頁の続き

散布図PCIモジュールを使用したワールドカップデータ分析問題の作成方法
１．アイテム（問題）を新規作成する。
(1) ヘッダーの「アイテム」をクリックする。
(2) 左サイドバーの「新規アイテム」をクリックする。

(3) 「Label」欄にアイテムの名前を入力する。
（例「Wカップデータ分析」）(4) 保存をクリックしてアイテムを保存する。

-132-

２．アイテム（問題）に散布図PCIモジュールを挿入する。
(1) 上部の「オーサリング」をクリックして編集画面を開く。

(2) 左サイドバー「Custom Interactions」を展開し中にある「ScatterPlot」を右側の画面にドラッグ・ア
ンド・ドロップする※あらかじめTAOに散布図PCIモジュールを
インストールしておく必要があります。
PCIモジュールのインストール方法については、
本報告書の付録２－２を参照してください。

３．受験者に分析させるデータを指定する。
(1) 「基本プロパティ」の「Select file」をクリック
して、データファイルwcup_data.csvを指定して開く。

（データシートが展開される。）-133-

４．項目名の表示を日本語にする。
(1) 「スタイルエディタ」をクリックして，言語を「English」から「Japanese」に変更する。

（アイテムに配置したScatterPlotをクリックすると項目名が日本語表示される。）

５．スタイルエディタの各項目を設定する。
(1) 「データ名」を入力する。
ここでは、”Wカップデータ”と入力する。

(2) 「散布図名」を入力する。
ここでは、”散布図”と入力する。

(3) ３で指定したデータについて、任意の条件によりグループに分けて分析できるよう、出題者が設定することができる。
ここでは、データの「予選結果」列に示された条件（決勝進出or予選敗退）により２グループに分けて分析させる問題を出題するため、”予選結果”を選ぶ。

(4) 作成した散布図の「相関係数」「回帰直線」「決定係数（R2）」について、・表示されるようにするか（「表示」に☑を入れる。）
・表示の有無を受験者が選択できるようにするか（「受験者が操作可能」に☑を入れる。）

・表示されないようにするか（☑を入れない。）
を選択する。
ここでは、相関係数、回帰直線については「表示」に☑を入れ、「決定係数（R2）」については☑を入れない。
※その他の項目は規定値-134-

６．問題文と解答選択肢を作成する。
(1) 問題文をInline Interractionsの文字ブロックなどを使用して作成する。
(2) 文字ブロック内に次のような選択肢を追加して，編集する。

７．正答を設定する。
(1) 各選択肢の「解答」をクリックして正答を設
定する。

-135-

【参考】作成したワールドカップデータ分析問題の受験者の初期画面【参考】作成したワールドカップデータ分析問題の解答方法
散布図以外に、
バブルチャートの作成も可能。

解答者が散布図の
縦・横項目を選択する。

グループ別表示は初期設定で選択されている。

問題作成時に回帰直線を「表示」と設定した
ため、回帰直線が表示される。
（決勝進出と予選敗退の２グループに分けて分析する設定がされているため、回帰直線も２本表示される。）

問題作成時に相関係数を「表示」と設定したため、相関係数が表示される。
（決定係数（R2）は非表示に設定したため、表示されない。）

グラフを追加 ボタンを押せば、複数の散布図を作成できる。

-136-

それぞれのリストから解答を選択する

解答を終えたら送信 ボタンを押して解答を提出する。

-137-

-138-

付録５―１

クロス集計PCIモジュール
操作マニュアルVer.1.0

2022年3月25日

データアクセス株式会社

-139-

目次
1. はじめに .................................................................................................................................... 2
2. TAO へのクロス集計 PCI のインストール .................................................................................. 3
3. オーサリング ............................................................................................................................. 6
3.1. クロス集計問題アイテム作成/編集の全体の手順 ............................................................. 6
3.2. クロス集計問題用の既存アイテム選択または新規アイテム作成 ..................................... 7
3.3. クロス集計 PCI のドラッグ＆ドロップ～クロス集計問題で使用する CSV ファイルのアップロード........................................................................................................................................ 8
3.4. クロス集計の各種設定 ......................................................................................................11
3.4.1. 集計値の項目の編集 ................................................................................................. 14
3.4.2. クロス集計 PCI で表示可能な表/グラフ .................................................................. 15
3.5. プレビュー ....................................................................................................................... 23
3.5.1. 複数のクロス集計の表示 .......................................................................................... 24
3.5.2. ブラウザのリロード ................................................................................................. 25
3.6. 多言語対応 ....................................................................................................................... 26
4. 操作ログ .................................................................................................................................. 27
4.1. 操作ログの取得・表示 ..................................................................................................... 27
4.2. 操作ログの見方 ................................................................................................................ 28
4.2.1. クロス集計表に対する操作のログ ........................................................................... 28
4.2.2. [リセット]ボタンの操作のログ ............................................................................... 30
4.2.3. [表を追加][表を削除]ボタンの操作のログ ............................................................. 30
5. おわりに .................................................................................................................................. 31

1

-140-

1. はじめに
本書は、「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（データ活用問題）」に基づき行った研究開発業務において開発した PCI の内、表形式で示されたデータをクロス集計して分析して解答を導き出すような問題（選択肢式など）でのクロス集計を作成す
る PCI（以下、「クロス集計 PCI」と言います）の操作説明書です。

2

-141-

2. TAO へのクロス集計 PCI のインストール
TAO にクロス集計 PCI をインストールする手順を説明します。
具体的には、TAO 上で以下の操作を行って、クロス集計 PCI を TAO オーサリング画面の Custom
Interactions 欄に追加して下さい。
① TAO にログインしてアイテム編集画面を開き、任意のアイテムを選択して「オーサリング」
をクリックして下さい。

② Custom Interactions 欄を開き、「カスタム操作の管理」をクリックして下さい。

3

-142-

③ 「インタラクション追加」をクリックして下さい。

④ クロス集計 PCI の ZIP ファイルをドラッグアンドドロップするか、「参照」してファイル選
択し、「アップロードする」をクリックして下さい。

4

-143-

⑤ 以上の操作手順により、Custom Interactions 欄にクロス集計 PCI のアイコンが表示されま
す。

5

-144-

3. オーサリング
以下の操作について、順に説明します。
✓

クロス集計問題アイテム作成/編集の全体の手順✓

クロス集計問題用の既存アイテム選択または新規アイテム作成✓

クロス集計 PCI のドラッグ＆ドロップ～クロス集計問題で使用する CSV ファイルのアップロード✓

クロス集計の各種設定✓

プレビューによる受験者画面表示の確認

3.1. クロス集計問題アイテム作成/編集の全体の手順
以下の手順により、クロス集計問題のアイテムを作成/編集します。
（１） TAO のアイテム画面にて、既存アイテムを選択または新規アイテムを作成（２） 新たにクロス集計問題を作成する場合、オーサリング画面にてクロス集計 PCI を問題作成
エリアにドラッグ＆ドロップし、クロス集計問題で使用する CSV ファイルをアップロード（３） クロス集計の各種設定を行い、適宜プレビューで確認

6

-145-

3.2. クロス集計問題用の既存アイテム選択または新規アイテム作成
TAO にログインし、TAO のアイテム画面にて、クロス集計問題用の既存アイテムを選択するか、
新規アイテムを作成し、「オーサリング」をクリックして下さい。

クロス集計問題を作成するオーサリング画面が表示されます。以下では、クロス集計問題を新たに作成する場合の操作手順を説明します。
※作成済みのクロス集計問題アイテムの編集も可能です。その場合は 3.4 をご覧下さい。

7

-146-

3.3. クロス集計 PCI のドラッグ＆ドロップ～クロス集計問題で使用する CSV ファイルのアップロード
クロス集計問題を新たに作成する場合のクロス集計 PCI のドラッグ＆ドロップ～クロス集計問
題で使用する CSV ファイルアップロードまでの操作手順を説明します。
尚、CSV ファイルは以下の条件を満足する必要があります。この条件を満たさないファイルをアップロードした場合、クロス集計 PCI の動作を保証しません。
✓ CSV ファイルの文字コードは UTF-8 であること✓ 先頭行はカラム名であること✓ 先頭行のカラム数と 2 行目以降のデータ数が一致すること
この手順が済んでいる既存アイテムの編集を行う場合は、3.4 をご覧下さい。
① Custom Interactions 欄のクロス集計 PCI のアイコンを問題作成エリアにドラッグ＆ドロッ
プして下さい。ドラッグ＆ドロップ後の表示画面は下表の 4 エリアに分かれています。
No.

エリア名

説明

(a)

問題表示エリア

設問及び(b)(c)を含む問題アイテムを表示する(b)

基データ表示エリア

クロス集計用にアップロードしたデータを表示する(c)

クロス集計表示エリア(d)で設定した条件に基づいたクロス集計を表示する(d)

クロス集計表示条件設定エリア

使用するデータやクロス集計の表示条件を設定する

8

-147-

② スタイルエディタ部基本プロパティの「CSV ファイル」の「参照」をクリックして、クロス集計で使用するデータとなる CSV ファイルをアップロードして下さい。

9

-148-

アップロードが成功すると、CSV ファイルに含まれるデータが問題表示エリアの基データ表
示エリアに表示されています。

10

-149-

3.4. クロス集計の各種設定
クロス集計 PCI は、問題出題時に１つのクロス集計表を予め表示することができます。
オーサリング画面のスタイルエディタ部基本プロパティでは、CSV ファイルのアップロードや問題出題時に予め表示するクロス集計表を含め、以外、クロス集計の各種設定が可能です。
オーサリング画面を表 1 に示します。設定内容を適宜保存しながら設定作業を行って下さい。
尚、問題作成エリアではクロス集計の操作、設定はできません。

図 1

クロス集計のオーサリング画面

スタイルエディタ部の基本プロパティで設定可能な項目を設定可能な項目を表 1 に示します。
表 1 の➀～⑬は図 1 の➀～⑬に対応しています。
用途欄は各項目の用途を以下の A～C で分類して表示し、項目名欄は日本語表記とカッコ内に英語表記しています。
A:クロス集計全体に関わる項目
B:問題の出題時に予め表示するクロス集計表を設定する項目
C:受験者がクロス集計表を作成する際の選択肢を設定する項目
表 1
No.

用途

➀

A

➁

A

スタイルエディタ部基本プロパティで設定可能な項目
項目名

説明

CSV ファイル

クロス集計で使用するデータ（基デー(CSV file)タ）を CSV ファイルで設定する

データ名

アップロードした基データの受験者(Raw data caption)

画面での表示タイトルを設定する
11

-150-

備考

➂

A

クロス集計表名

受験者画面に表示するクロス集計表(Pivot Table

タイトルを設定する

caption)④

B

列項目(表側)

受験者画面に予め表示するクロス集(Column items)

計表の列の項目をプロダウンメニュ
ーから選択して 1 項目ずつ設定する。
複数設定することが可能⑤

B

行項目(表側)

受験者画面に予め表示するクロス集(Row items)

計表の行の項目をプロダウンメニュ
ーから選択して 1 項目ずつ設定する。
複数設定することが可能⑥

B/C

選択可能な表/グラフ形

クロス集計で表示できる表/グラフを削 除した表 /式表示する。不要な項目の「x」をクリッ

グラフの項目(Selectable

クすることで削除する形式で設定すの削除取り消Table/Graph Types)

る。この欄の空白部分をクリックする

しは図 2 をと削除した表/グラフの項目が表示さ

参照のこと

れ、選択することにより削除を取り消しできる。
表示可能な表/グラフの形式の詳細は3.4.2 を参照のこと⑦

B

表/グラフ形式

受験者画面に予め表示するクロス集(Table/Graph Type)

計表の表/グラフを⑥で設定した項目のプルダウンメニューから選択して
設定する

⑧

B

集計値

受験者画面に予め表示するクロス集

集計値項目の(Aggregator)

計表の集計項目をプルダウンメニュ

編集は 3.4.1

ーから選択して設定する。

を参照のことプルダウンメニューに表示する集計
値の項目は編集（追加/削除）可能
⑨

B

属性 1

受験者画面に予め表示するクロス集

集計値(Attribute 1)

計表の集計項目の第 1 の属性をプルダ(Aggregator)

ウンメニューから選択して設定するの設定内容に
依存

⑩

B

属性 2

受験者画面に予め表示するクロス集

集計値(Attribute 2)

計表の集計項目の第 2 の属性をプルダ(Aggregator)

ウンメニューから選択して設定するの設定内容に
依存

⑪

A

配色

表示するクロス集計の色合いをプル
12

-151-

(Color Scheme)

ダウンメニューから選択して設定する⑫

A

操作ログの記録

チェックボックスにチェックを付け(Store operation log)

ることによって受験者のクロス集計の操作ログを取得することができる⑬

A

レスポンス識別子

操作ログのカラム名を設定する(Response identifier)

図 2

削除した表/グラフの項目の削除取り消し

13

-152-

3.4.1. 集計値の項目の編集
クロス集計 PCI では、集計値(Aggregator)として扱うことが可能な項目（表 2）の内、「件数」(項番 1)、「合計（整数）」(項番 4)、「平均」(項番 5)、「最小」(項番 10)、「最大」(項番 11)のみ利用可能です。
表 2

集計値(Aggregator)として可能な項目

No.

項目名（英語表記）

項目名（日本語表記）

備考

1

Count

件数

*

2

Count Unique Values

ユニーク値を表示(CSV)

3

Sum

合計

4

Integer Sum

合計(整数)*

5

Average

平均*

6Median中央値

7Sample Variance

標本分散

9

Sample Standard Deviation

標本標準偏差10

Minimum

最小*11

Maximum

最大

*

12

First

最初

13

Last

最後

14

Sum over Sum

選択 2 項目の比率

1580% Upper Bound

選択 2 項目の比率(上限 80%)

16

80% Lower Bound

選択 2 項目の比率(下限 80%)17

Sum as Fraction of Total

合計割合

18

Sum as Fraction of Rows

合計割合(行)19

Sum as Fraction of Columns

合計割合(列)20Count as Fraction of Total

件数割合

21

Count as Fraction of Rows

件数割合(行)

22

Count as Fraction of Columns

件数割合(列)* クロス集計 PCI で利用可能な集計値の項目
表 2 に示す集計値の項目は、以下のファイルを編集することにより、クロス集計 PCI で利用可
能または利用不可とすることができます。
➢ (PCI のルートディレクトリ)/creator/widget/states/Question.js (L73-99)➢ (PCI のルートディレクトリ)/runtime/js/renderer.js (L38-64)
具体的には、上記の両ファイルをテキストエディタにより開き、集計値として表示する項目はコメントアウト（//を記述）し、表示しない項はコメントを外して(//を削除）下さい（図 3）
。

14

-153-

/**
* 除外する Aggregator*/
const EXCLUDED_AGGREGATORS = [// "Count",<-- 集計値の項目として表示する"Count Unique Values",<-- 集計値の項目として表示しない"List Unique Values",<-- 集計値の項目として表示しない"Sum",<-- 集計値の項目として表示しない// "Integer Sum",<-- 集計値の項目として表示する// "Average",<-- 集計値の項目として表示する"Median",<-- 集計値の項目として表示しない"Sample Variance",<-- 集計値の項目として表示しない"Sample Standard Deviation",<-- 集計値の項目として表示しない// "Minimum",<-- 集計値の項目として表示する// "Maximum",<-- 集計値の項目として表示する"First",<-- 集計値の項目として表示しない"Last",<-- 集計値の項目として表示しない"Sum over Sum",<-- 集計値の項目として表示しない"80% Upper Bound",<-- 集計値の項目として表示しない"80% Lower Bound",<-- 集計値の項目として表示しない"Sum as Fraction of Total",<-- 集計値の項目として表示しない"Sum as Fraction of Rows",<-- 集計値の項目として表示しない"Sum as Fraction of Columns", <-- 集計値の項目として表示しない"Count as Fraction of Total", <-- 集計値の項目として表示しない"Count as Fraction of Rows",<-- 集計値の項目として表示しない"Count as Fraction of Columns" <-- 集計値の項目として表示しない];
図 3

集計値として表示する項目の編集

3.4.2. クロス集計 PCI で表示可能な表/グラフ
クロス集計 PCI で表示可能な表/グラフを表 3 に示します。
表 3
No.

クロス集計 PCI で表示可能な表/グラフの一覧

日本語表記[英語表記]

説明

備考

1

表[Table]

クロス集計データを表形式で表示する

図 4 参照2

表(要素を棒グラフ)

クロス集計データを表形式で表示し、各セル

図 5 参照[Table Barchart]にその値を棒グラフで表示する

ヒートマップ(全体比較)

クロス集計データを表形式で表示し、各セル

3

15

-154-

図 6 参照4[Heatmap]の値の大小を色で視覚化して表示する

ヒートマップ(行内比較)

クロス集計データを表形式で表示し、行毎に[Row Heatmap]

各セルの値の大小を色で視覚化して表示す

図 7 参照る
5

ヒートマップ(列内比較)

クロス集計データを表形式で表示し、列毎に[Col Heatmap]

各セルの値の大小を色で視覚化して表示す

図 8 参照る
6折れ線グラフ

クロス集計データを、列項目を X 軸にして行[Line Chart]

項目毎の値をプロットし、行項目毎に関連す

図 9 参照る項目の点を直線で繋いで表示する
7
8

9
10

棒グラフ(横)クロス集計データを、行項目を Y 軸にして列[Horizontal Bar Chart]

項目毎の値を棒グラフで表示する

積み上げ棒グラフ(横)クロス集計データを、行項目を Y 軸にして列[Horizontal Stacked Bar

項目毎の値を積み上げた形式の棒グラフでChart]

表示する

棒グラフ

クロス集計データを、列項目を X 軸にして行[Bar Chart]

項目毎の値を棒グラフで表示したもの

積み上げ棒グラフ(横)クロス集計データを、列項目を X 軸にして行[Stacked Bar Chart]

項目毎の値を積み上げた形式の棒グラフで

図 10 参照
図 11 参照

図 12 参照
図 13 参照

表示する
11

積み上げ折れ線グラフ(横)クロス集計データを、列項目を X 軸にして行[Area Chart]

項目毎の値を積み上げた形式でプロットし、行項目毎に関連する項目の点を直線で繋い
で表示する

16

-155-

図 14 参照

図 4 表 [Table]

図 5 表(要素を棒グラフ) [Table Bar Chart]
17

-156-

図 6 ヒートマップ(全体比較) [Heatmap]

図 7 ヒートマップ(行内比較) [Row Heatmap]

18

-157-

図 8 ヒートマップ(列内比較) [Col Heatmap]
20

図 9 折れ線グラフ [Line Chart]

19

-158-

図 10 棒グラフ(横) [Horizontal Bar Chart]

図 11 積み上げ棒グラフ(横) [Horizontal Stacked Bar Chart]
20

-159-

図 12 棒グラフ [Bar Chart]

図 13 積み上げ棒グラフ(横) [Stacked Bar Chart]
21

-160-

図 14 積み上げ折れ線グラフ(横) [Area Chart]

22

-161-

3.5. プレビュー
オーサリング画面で「プレビュー」をクリックすることにより、スタイルエディタ部で設定した内容に基づく受験者画面の表示をプレビュー画面で確認することができます。
プレビュー画面での動作や操作は受験者画面でも同じ動作、操作となります。
また、プレビュー画面で実施した操作の内容は、オーサリング画面の問題作成エリアやスタイ
ルエディタ部の設定内容には反映されません。

23

-162-

表示されたプレビュー画面の「閉じる」をクリックすると、オーサリング画面に戻ります。ア
イテムの編集作業を継続できます。

3.5.1. 複数のクロス集計の表示
グラフ下部の「表を追加」をクリックすることにより、新たなクロス集計を直下に表示します。
「表を削除」をクリックすることにより、当該クロス集計を削除します。
尚、クロス集計は、スタイルエディタ部の基本プロパティで予め問題に表示する設定を行ったク
ロス集計を含めプレビュー画面と、受験者画面に最大 4 つまで表示できます。

24

-163-

3.5.2. ブラウザのリロード
プレビュー画面でクリック可能であるべきボタンがクリックできない状態となった場合（例えば、複数のクロス集計を限度数まで表示していないのに「グラフを追加」ボタンをクリックできなくなった場合）、画面のリロード（[Ctrl]＋[F5]）をお試し下さい。

25

-164-

3.6. 多言語対応
クロス集計 PCI は日本語と英語の表示が可能です。
オーサリング画面スタイルエディタ部アイテムプロパティの「言語」のプルダウンメニューから表示言語を選択して下さい。
Japanese を選択すると日本語で、それ以外を選択すると英語で表示します。

26

-165-

4. 操作ログ
受験者のクロス集計操作ログの取得・表示の操作と、操作ログの見方について説明します。
4.1. 操作ログの取得・表示
オーサリング画面の基本プロパティ「Store operation log」のチェックボックスにチェックを入れた場合、以下の手順で操作ログを表示、出力できます。
① TAO の「結果」表示画面で対象の試験を選択して、「View」をクリックして下さい。

② 操作ログを JSON 形式で画面上に表示します。「CSV エクスポート」ボタンクリックにより、CSV ファイルに出力できます。尚、出力した CSV ファイルの文字コードは UTF-8 であることに留意して下さい。

27

-166-

4.2. 操作ログの見方
4.2.1. クロス集計表に対する操作のログ[表 ID]は "table1","table2","table3","table4" のいずれか•

operation"change"•name[表 ID]
value

o

cols
横軸(列)
colOrdero

列ソート設定
rows

o

縦軸(行)
rowOrdero

行ソート設定aggregatorNameo

集計方法
rendererName

o

描画方法
vals

o

集計のパラメータ
exclusions

o

除外設定
•

例）
[
{
"operation": "change","name": "table1","value": {"cols": ["西暦（年）"]},"datetime": "2022-02-08 16:29:57+09:00"
28

-167-

},
{
"operation": "change","name": "table1","value": {"rows": ["年齢 5 歳階級"]},
"datetime": "2022-02-08 16:30:07+09:00"},{"operation": "change","name": "table1","value": {"rendererName": "エリアチャート"},"datetime": "2022-02-08 16:30:14+09:00"},{"operation": "change","name": "table1","value": {"aggregatorName": "合計（整数）"},"datetime": "2022-02-08 16:30:23+09:00"},{"operation": "change","name": "table1","value": {"vals": ["人口（総数）"]},"datetime": "2022-02-08 16:30:27+09:00"
},
]
29

-168-

4.2.2. [リセット]ボタンの操作のログ•

operation"resetTable"•

name"resetButton"

•

value
true

•

例）
[
{
"operation": "resetTable","name": "resetButton","value": true,"datetime": "2022-02-04 19:41:34+09:00"}]

4.2.3. [表を追加][表を削除]ボタンの操作のログ•

operationo"showTable"[グラフを追加]o"hideTable"[グラフを削除]

•

•

name
o

"addTableButton"o"removeTableButton"value
対象の表 ID•

例）[{"operation": "showTable","name": "addTableButton","value": "table2",
30

-169-

"datetime": "2022-02-04 19:46:38+09:00"},{"operation": "hideTable","name": "removeTableButton","value": "table2","datetime": "2022-02-04 19:46:40+09:00"}]

5. おわりに
クロス集計 PCI の入手方法については、大学入試センターにお問合せ下さい。

31

-170-

付録５―２

クロス集計PCIモジュール
ソースコード説明書
Ver.1.0

2022年3月25日

データアクセス株式会社-171-1. はじめに
本書は、「教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（データ活用問題）」の調査研究業務で開発した PCI の内、表形式で示されたデータをクロス集計して分析して解答を導き出すような問題（選択肢式など）でのクロス集計を作成する PCI（以下、「クロ
ス集計 PCI」と言います）に関して、以下を記述する。
➢ PCI ファイル構成➢ PCI を構成するファイルの説明

1

-172-

2. PCI ファイル構成
本 PCI は Wiquid 社製ツール（PCI Generator for TAO platform、以下、「PCI Generator」と言う）を基に開発した。具体的なファイル構成を図 1 に示す。

図 1

クロス集計 PCI のファイル構成

2

-173-

3. PCI を構成するファイルの説明
クロス集計 PCI を構成するファイルの説明を表 1 に示す。
表 1
No.
1

クロス集計 PCI を構成するファイル

ファイル名
pciCreator.js

ファイルの説明備考

初期化時に作問機能のフックとなる AMD モジ
ュール2

pciCreator.json

サーバとクライアントが pciCreator を記述するために必要なすべてのデータ（名前、ラベル、必要な js、css など）を含むマニフェストファ
イル

3

icon.svg

PCI のアイコン画像

4

markup.tpl

出題画面の HTML テンプレート

5propertiesForm.tpl

スタイルエディタ(オーサリング)の HTML テン
プレート

6Widget.js(PCI Generator が必要とするファイル)

7

Question.js

オーサリング処理の JavaScript

8

states.js(PCI Generator が必要とするファイル)

9

PivotTable.amd.js

出題機能のフックとなる AMD モジュール

10base.css

基本のスタイルシート

11

c3.css

グラフ描画ライブラリのスタイルシート

12

PivotTablet.css

出題画面のスタイルシート

13material-dashboard.css

管理画面用ライブラリ MaterialDashboard のスタイルシート

14

pivot.css

PivotTable ライブラリのスタイルシート

15

theme.minimum.css

jquery.tablesorter.js のスタイルシート

16

i18n.translation.js

多言語対応用ライブラリ17

jquery.csv.js

CSV ファイルのパース用ライブラリ18

jquery.tablesorter.js

基データのソートライブラリ19

renderer.js

出題画面を描画する JavaScript20

c3_renderers.js

グラフ描画用ライブラリ21

pivot.js

クロス集計表ライブラリ

3

-174-

SVG 形式付録５－３

クロス集計ＰＣＩモジュール
問題例とその作成方法（季節と天気と気温分析問題）作成する季節と天気と気温分析問題（受験者の初期画面）-175-

クロス集計PCIモジュールを使用した季節と天気と気温分析問題の作成方法
１．アイテム（問題）を新規作成する。
(1) ヘッダーの「アイテム」をクリックする。
(2) 左サイドバーの「新規アイテム」をクリックする。

(3) 「Label」欄にアイテムの名前を入力する。
（例「季節と天気と気温分析」）(4) 保存をクリックしてアイテムを保存する。

-176-

２．アイテム（問題）にクロス集計PCIモジュールを挿入する。
(1) 上部の「オーサリング」をクリックして編集画面を開く。

(2) 左サイドバー「Custom Interactions」を展開し中にある「PivotTable」を右側の画面にドラッグ・ア
ンド・ドロップする※あらかじめTAOにクロス集計PCIモジュールを
インストールしておく必要があります。
PCIモジュールのインストール方法については、
本報告書の付録２－２を参照してください。

３．受験者に分析させるデータを指定する。
(1) 挿入されたPivotTable PCIモジュールを選択し，「基本プロパティ」の「Select file」をクリックして，データファイルkion_data.csvを指定して開く。

（データシートが展開される。）-177-

４．項目名の表示を日本語にする。
(1) 「スタイルエディタ」をクリックして，言語を「English」から「Japanese」に変更する。

（アイテムに配置したPivot Tableをクリックすると項目名が日本語表示される。）

５．スタイルエディタの各項目を設定する。
(1) 「データ名」を入力する。
ここでは、”ある都市の気温データ”と入力する。

(2) 「クロス集計表名」を入力する。
ここでは、”クロス集計表”と入力する。

(3) 受験者が選択できる集計値の種類を設定する。
ここでは、”平均”を選ぶ。

(4) 「選択可能な表/グラフ形式」欄から、表示させないこととする種類の表/グラフを削除する。
※その他の項目は規定値-178-

６．問題文と解答選択肢を作成する。
(1) 問題文をCommon Interractionsの「選択」（Choice Interraction）を使用して作成する。
(2) Choice Interractionの基本プロパティで，「選択肢の選択回数」を「最小」:１，「最大」：１に設定する。

７．正答を設定する。
(1) 各選択肢の「解答」をクリックして正答を設
定する。

-179-

【参考】作成した季節と天気と気温分析問題の受験者の初期画面【参考】作成した季節と天気と気温分析問題の解答方法(1) 選択肢１「春（３月～５月）は各時間の平均気温はいつも雨＜曇り＜晴れの順になっている。」が正しいか分析。

項目リストから項目をドラッグ・アンド・ドロップ(※)してクロス集計表の縦・横項目を設定する。

平均値を表示する
項目を指定する。

異なるクロス集計表を作成して比較する場合は，「表を追加」をクリックする。（下にクロス集計表が追加される）。
（※）令和４年６月に公表するクロス集計PCIモジュールは、タッチパネルによるドラッグ・アンド・ドロップの操作には対応していない。

-180-

(2) 選択肢２「夏（６月～８月）は９時の平均気温が15時を上回る月がある。」が正しいか分析。

６月から８月までのデータのみ表示するようにする。

９時と15時のデータのみ表示するようにする。

(3) 選択肢３「秋（９月～11月）は曇りの日の方が１日の平均気温が高い。」が正しいか分析。

９月から11月までのデー
タのみ表示するようにする-181-

(4) 選択肢４「冬（12月～２月）は雨の日の方が朝９時の平均気温が高い。」が正しいか分析。

12月から２月までのデー
タのみ表示するようにする

９時のデータのみ表示す
るようにする(5) 分析の結果、「冬（12月～２月）は雨の日の方が朝９時の平均気温が高い。」が正しいことが分かったため、選択肢４を選択し、送信ボタンを押して解答を提出する。

解答を選択する-182-

付録６－１

教科「情報」の CBT 試験を TAO で実施するためのPCI に関する調査研究業務（プログラミング問題）
調査研究報告書

BPS 株式会社
2022 年 3 月 25 日

-183-

目次
1. はじめに

3

2. 概要

3

3. インタラクション開発上の課題
3.1 TAO上で実現できないこと、または注意すべき点

4
4

3.1.1 解答後レビューが表示されない

4

3.1.2 解答は2回送信できない

5

3.1.3 CSSのoverrideについて

5

3.1.4 qti.xmlの上書き

5

3.1.4 編集後の保存で保存データが消えることがある

6

3.1.4.1 検証

6

3.1.4.2 データの2回目以降の保存方法

7

3.1.5 特定の文字を入力するとそれ以降の文字が消える
3.2 実装上の問題点

893.2.1 ドロップダウンリストについて

9

3.2.2 ネスト数に関する課題

10

3.3 将来的な拡張性

11

3.3.1 関数の実現

113.3.2 固定短冊の挿入禁止プロパティの設定

11

3.3.3 Undo, Redoの必要性

12

2

-184-

1. はじめに(独)大学入試センターでは大学入学共通テストへのCBT活用に向けて調査研究を行うため、大学・高校関係者をはじめとする教育関係者に向けて「情報I」の試験のために開発したCBTの機能を整備、提供することが求められています。
本業務では大学入試センターセンターより委託を受け、「情報I」の試験のためのCBTの機能のうち「プログラミング問題(短冊式)」の機能について、教育現場で広く活用されているCBT
プラットフォーム「TAO」上で使用するためのPCI(Portable Custom Interactions)の開発及び調査研究を行います2. 概要
TAO上で実行可能な「Custom Interaction」を開発した中で、開発上行き詰まった点や、仕様上の問題点、また、「プログラミング問題」を出題する目的にも沿った形で考えられる将来的な展望について、本報告書にまとめました。

3

-185-

3. インタラクション開発上の課題
本報告書では、CBTプラットフォーム「TAO」上で使用するためのPCIの開発において発見された不具合や、実装上の課題、また将来的な展望についてまとめます。

3.1 TAO上で実現できないこと、または注意すべき点

3.1.1 解答後レビューが表示されない
テスト完了後、採点者画面にて「レビューボタン」をクリックすると500番エラー（図3.1.1参照）が返却され、解答内容のレビューが実施できない問題があります。

図3.1.1）

原因は不明ですが、本PCIと全く関連の無い環境下で、かつ標準インタラクションを用いた解答後プレビューも同じ結果となることから、TAO特有の問題と考えられます。
この問題を回避するための方法は公式にも記されておらず、3.3.0-RC2では解答後レビューは機能しないという結論に至りました。

4

-186-

3.1.2 解答は2回送信できない
TAOの仕様として、1つの問題に対して解答を2回以上送信することはできません。
必ず１問１答となる必要があります。

3.1.3 CSSのoverrideについて
Custom Interactionで配置する独自のオブジェクト（ただし、TAOのクラスを利用する）に独自のスタイルを適用する場合、後から読み込んだ独自CSSにてクラスをoverrideしてもTAO標準のCSSの値を上書きできないことがありました。
この場合、独自で作成したPCIに存在する「Interactionを読み込んだ時に実行されるJavaScript」
において、対象クラスのCSSを上書きするか、HTMLのstyle属性にimportantをつけた上で強制的に上書きするかといった方法で、適用されることが確認できました。

3.1.4 qti.xmlの上書き
Custome Interactionをフィールドに配置し、問題・解答を作成した上で保存処理を実行（「保存」をクリックするか、戻る等を押した際に表示される未保存の問題を保存するかどうかのポップアップにて「Save」を選択する）すると、問題のXMLファイルがサーバ上の/var/www/html/tao/data/taoItems/itemData/<識別子ID>/itemContent/en-US/qti.xml※ /var/www/html/taoをインストール先のフォルダとした例に保存されます。
通常の、例えば標準搭載されているInteractionでは、設定した問題は全てXMLタグに変更されて保存されますが、本PCIは性質上、設定した短冊型コードは全てHTMLとしてXMLファイルに保存しています（HTMLファイルの中のdata-question-state属性に短冊型コードの情報を保存）。
1回保存した後の2回目以降（編集時等）については、このdata-question-state属性の中身をJSON Parseにより解析し、短冊型コードの再配置を行っています。この時、data-question-stateには1回目で保存した短冊型コードの元データとなるHTMLが保存されていることを確認しています。
2回目以降に何らかの変更を加えて再度保存をすると、data-question-stateを含むHTMLタグが消滅、問題として設定した短冊型コードの「配置」が全て消える事象が発生しました。
短冊型コードの「配置」はdata-question-state属性にありますが、解答に必要となる実行結果正答
や、JavaScriptについては、同XMLファイル内のresponseDeclaration > correctResponse > value
5

-187-

に保存されており、この値は消えることはありませんでした。
1回目も保存できる時と保存できない（消滅する）時があり、実際にサーバにPOSTしている値を検査しても、保存可否時において違いがないことが確認できています。
従って、サーバ上で保存処理を行っているTAOのヘルパ等に、InteractionのHTML内に存在するdata
属性を正常に解釈できないなどのバグが内在する可能性も考えられます。
※本事象についてはTAO 3.3.0-RC02で確認しています

3.1.4 編集後の保存で保存データが消えることがある問題を作成後、アイテムを編集し、再度「保存」ボタンを押すと作成した問題が全て消えることがあります。これは2回目以降の保存時に、問題データのうち短冊型ブロックを表示するためのデータ領域が空になってしまうことが原因で、空データで上書きされてしまうため、次回表示時に短冊型コードが消えてしまっている、という現象です。
常に上書きされるわけではなく、まれに（100回検査したところ12回は正常に保存できた）保存
できることがあり、どのような条件で発生するかについての調査は結論が出せませんでした。
保存データが消える事がある問題については、発生条件が絞れており、回避し正常に保存させることが可能です。

3.1.4.1 検証
保存データが消える現象について、実際のSAVE時のPOSTデータ等を調査しました。
図3.1.4.1-1は正常に保存ができたときのPOSTデータです。「data-question-state」属性の中に短冊型コードの状態がJSON化されて送信されており、この内容でサーバ内データが保存される
ため、次回展開時も短冊型コードを復元することができます。
図3.1.4.1-2は保存に失敗したときのPOSTデータです。
「data-question-state」の中身が空になっており、この内容でサーバ内XMLデータが上書きされてしまうため、次回展開時に空となってしまいます。
TAOにおける「save」クリック時に「A：saveしようとしている内容」と「B：その時の短冊の並び」を比較する処理を入れ、差があればAをBの内容で上書きする、という処理を入れようと試みました。しかし、TAOのsave処理よりも前に別の処理を入れることができず、こちらは上手くいきませんでした。
data-question-stateの中身が消えてしまう直接的な原因は判明いたしませんでしたが、後述する「データの2回目以降の保存方法」という、TAOの異なるSaveAPIを用いて保存する方法
でこの問題が回避できることから、TAOのSaveAPIになんらかの問題があると考えられます。

6

-188-

図3.1.4.1-1）正常に送信されたときのPOSTデータ

図3.1.4.1-2）保存に失敗したときのPOSTデータ

3.1.4.2 データの2回目以降の保存方法
図3.1.4.2-1に示した通り、保存時にナビゲーションメニューの「Items」を押した際に表示される
ポップアップメニュー（図3.1.4.2-2）の「SAVE」から保存をすると、正常に保存されます。

7

-189-

図3.1.4.2-1）保存方法。ナビゲーションメニューのItemsから保存を行う。

図3.1.4.2-2）Itemsを押した際に表示されるポップアップメニュー。

このように、メニューバー「Save」ボタンから行う保存と、ItemsのSAVEボタンから行う保存で保存結果が異なることから、この両者の保存は異なるTAO APIを使用していると考えられ、また「どちらのAPIを選択して保存するか」といったAPIリクエストはPCI上では実装不可であることから、本課題はTAO特有の課題と考えられます。

3.1.5 特定の文字を入力するとそれ以降の文字が消える
テキストフィールドに <（半角小なり）を入力すると、それ以降の文字が消えることがあります。これは、TAOにおける「プロパティ欄のtextareaに対する入力文字をHTMLとして自動解釈されていること」が原因であると考えられます。
＜検証方法＞
本PCI、もしくはTAO標準のカスタムインタラクションであるBrainStorm等、プロパティ欄でtextareaによる入力欄を持ち、それがインタラクション上に反映されるものをドロップします。
プロパティに”<”から始まる何らかの文字を入力すると、”<”以降の文字が消えることが確認できます。
本PCIであれば短冊型コードを選択したときに表示される「表示内容」欄に”<"から始まる文字を何か入力します。
“<”の後に半角スペースを入れることで表示されますが、TAOにおけるtextareaの扱いをPCI側から変更することはできないため、本課題はTAO特有の課題と考えられます。

8

-190-

3.2 実装上の問題点
3.2.1 ドロップダウンリストについて
短冊型コードの表示内容をJavaScript以外の，例えば日本語疑似言語で表すと，ドロップダウンの論理演算子や算術演算子のみがJavaScript標準になってしまうことになり，結果的に論理演算子や算術演算子はドロップダウンリストでは問えないということになります。
表示上は['or', 'and']や['または', 'かつ']などにして、コードに変換する際に['||','&&']になるような仕組みに出来ないか検討しました。
例えば、['or':'||', 'and':'&&']のような形式で、表示文字とコード文字をそれぞれコロン区切りで設定するなどが考えられます。
本PCIにおいて利用する実行言語（TAO上で動作するCustom Interaction上の実行言語）について
は、全てJavaScriptで記載する必要があります。短冊型コードによって問題を作成した後の処理として、JavaScriptに変換し実行実行結果を得る挙動となりますが、JavaScriptに変換する際、JavaScriptの元のコードとなる「実行コード」プロパティにおいてもJavaScriptにて記載する必要があります。
セレクトボックスの処理については、「¥selectBox_<id(3桁)>[array(カンマ区切り)]」とすることで、array内の配列要素が選択できるセレクトボックスが生成されます。
例)¥selectBox_012[1,2,3,4];↓[ 1▼ ] （1〜4まで選択が可能）
これを配列内要素をコロン区切りで実装する場合、以下のような実行コードとすることが考えられます。
¥selectBox_012['または:||', 'かつ:&&', '足す:+', '引く:-']現在、selectBoxを判定する正規表現は/\¥selectBox_([a-zA-Z0-9]{1,3})\[.+?\]/となっています。
この時、[]内に収められているカンマ区切りの文字をsplitで処理しセレクトボックス用配列に格納していますが、現状は配列内の文字列については詳細なバリデーションチェックを行っていません。
ここで上記のように「または」という日本語表記と、実際の演算子を紐付ける処理を入れる場合、配列内の文字列に存在する特定の区切り文字（ここでは「:」（コロン）とします）で分割して配列に挿入する処理を実行し、表示はarray(0), 実行コードはarray(1)とします。この「実行コード」が実際のJavaScript
コードに変換されることになりますが、 JavaScriptの記述に準拠していない形式の演算子が記載されていた場合、エラーを表示する必要があります。これらを全てのselectBox内の配列においてチェックし、さらに実行コードを含む場合と含まない場合が混合するようなケースも考えられますが、全てのパター
9

-191-

ンに対応して正常に表示させ、かつ正常に動作させることは全例外パターンの列挙が必要となるため現実的ではありません。
また、受検者によるインジェクションコードの挿入によって問題の正解が抜き取られる状態や、必ず正答となるような状況が作られてはなりません。
テキストボックスにおいては、このような不正なインジェクションコードの入力を禁止するため、以下の演
算子の入力を禁止しています。
/(\,|\'|\"|\!|\=|\/|\+|\-|\~|\*|\%|\<|\>|\||\&|\?|\^|\(|\))/
セレクトボックスについては作問者によって設定するため、入力禁止ワードの設定は設けていません。
「：」区切りで演算子の選択を可能にした場合、意図せずに不正ワードの入力を許可してしまう問題となってしまう可能性があり、やはりセレクトボックスにおいても入力禁止ワードの設定は必要不可欠と考えられます。
この2点の問題点につき、本件については本開発では実施しないものとしました。

3.2.2 ネスト数に関する課題
現在、FOR、WHILE、IF、IF-ELSE、といったネスト構造をもつ短冊型コードの「最大ネスト数」については、本PCIでは「最大5個まで」としています。
技術的には、6個以上、例えば20個や30個、100個もネスト構造として持たせることは可能ですが、実行時に全てのネスト構造を解析し、エラーチェックおよびjson化の処理を実行しています。
ネスト構造が深くなればなるほど解析処理や、ユーザインタフェースの処理（ブラウザのブラウジング）に負荷がかかり、ブラウザが停止してしまい、テストが中断されてしまうという可能性も考えられます。
一般的なプログラミングの開発方針として、ネスト構造が深ければ深いほどコードが複雑化し、また保守性や可読性が著しく低下するため、あまり良いプログラミング開発とは言い難いです。
さらに、6個以上設定すると解答欄からネストを含む短冊型コードがはみ出てしまったり、画面右からはみ出してしまった場合新たなネストを追加できない・テキストボックスに入力できない、削除ボタンも押せなくなるなど見た目上の問題点も多く、現状では枠内に収まる5個を最大値とすることでこれらの問題を回避しました。
とりわけネスト構造が6個以上続くようなプログラミング問題は作成されないという前提で開発を進めましたが、今後そのような問題を作成する必要が出た場合、画面の幅といったユーザインタフェース的な側面が大きく影響してくるため、注意が必要です。

3.3 将来的な拡張性
3.3.1 関数の実現
短冊型コード内への関数処理の展開については、プログラミング問題を扱うべく本PCIにおいて重要度の高い機能と言えます。
10

-192-

関数型プログラミングの問題を出題する際、関数の考え方やコーディング方法について習得しているかは非常に重要であり、プログラミングを使う上で欠かせない知識とも言えます。
一方で、「関数の実現」について、本PCI上、とりわけ「TAO」というテストプラットフォーム
上で実現するためには、様々な問題が発生します。
TAO-PCIが「AMD(Asynchronous Module Definition)」という非同期モジュールの定義方法に則った形で書かれており、（PCIの動作に必要な）独自の関数を書くために、まず関数の動作に必要となる定数を定義する必要があります。
例えばjQueryのイベントを利用する場合、jQueryの元となるファイルを関数の定義箇所に記載し、それを「$」として継承し、関数内で利用が可能となります。
最も問題となる点は、本PCIはJavaScriptの問題作成のためのプラットフォームではなく、
あくまでプログラミングの体系的な考え方や記法を、メタ言語に近い形で出題できるようにするものであるため、あまりにもJavaScriptの作法に寄り過ぎてしまうと、JavaScript以外の問題が出題できなくなってしまいます。
関数の記法は各言語によって大きな差は無いものの、TAOというプラットフォーム上で関数をメタ言語的に扱うのは実装上高いハードルがあり、詳細な仕様策定・例外チェックが求められると思われ、本開発では扱わないものといたしました。

3.3.2 固定短冊の挿入禁止プロパティの設定
固定短冊型コードのプロパティに対し「前後に対する短冊型コードの挿入を禁止する」
設定ができるようにすることで、解答欄に初期配置した短冊型コードを利用し、さらに発展的な問題を作成することが可能となる。
例えば、短冊型コードA
空白
空白
短冊形コードBと配置された解答欄において、現在では短冊型コードAよりも前、もしくは、短冊型コードBよりも後に新たな短冊型コードを配置することが可能ですが、これを禁止することにより、問題に制約を設定し、出題者の意図やねらいを解答者に問うような発展的な問題の作成が可能となります。
ただしこの機能を実現する上で実装上難しい問題が存在します。
「固定化した短冊型コードの後に存在する領域」に対するドラッグアンドドロップ禁止処理
は、現在のUI関連処理をまとめたJavaScriptコードでは対応していません。そのため、新たに「ドラッグアンドドロップを禁止する領域を設定できる処理」の開発が必要です。
また「ネスト内に存在する短冊型コードの場合、そのネスト内の対象固定短冊型コード以降とするのか、ネスト外も範囲に含めるのかの判断」が必要であるなど、細かな仕様の策定が必要になる他、例外的な処理への対応も複雑化します。

11

-193-

これらの問題により、本件では対応しないものとしますが、機能としては前述のように出題のスケーラビ
リティを確保する上で重要な機能と思われるため、将来的な展望として記載いたします。

3.3.3 Undo, Redoの必要性
本PCIで作成した問題の解答時に、Undo（直前の操作を取り消し、一つ前の状態に戻す）およびRedo（Undoした内容を取り消し、一つ元の状態に戻す）については、機能として備わっていません。本PCIを用いた試験はWebブラウザ上で実施するため、直前まで実施した内容を元に戻したいといった操作は頻繁に利用されるものと考えられます。ブラウザの戻るボタンであるブラウザバックなどで「戻る処理」をユーザが行った場合、問題開始前の状態に戻ってしまい、最初から試験をやり直すこととなってしまいます。これではユーザビリティがかなり低下するため、やはりUndo, Redo機能は重要であると考えられます。
しかしながら、CustomInteractionは全てJavaScriptベースで実装されるため、データの保存は基本的にブラウザが実装するマシンスペックに依存します。
Undo, Redoについては、「1つの操作が行われるたび、どのような状態だったかをブラウザ内の保存領
域に保存し、それをJavaScriptでバージョン管理をする」といった処理が必要となりますが、どのような環境下でもこのバージョン管理機構を作動させなくてはならないため、ローカルストレージに対応したブラウザであるか、バージョン管理の最大値をどのように設定するかなど、詳細な仕様策定が必要と考えられます。さらに、TAOプラットフォーム上でそのような管理が可能かどうかなどの検証も必要となるため、本課題については将来的な展望として記載いたします。

12

-194-

付録６－２

教科「情報」の CBT 試験を
TAO で実施するための PCI に関する調査研究業務（データ活用問題）

調査研究報告書

2022 年 3 月 25 日
Ver.1.0-195-目次
1. はじめに .................................................................................................................................... 2
2. PCI の開発 ................................................................................................................................. 3
2.1. 基本方針 ............................................................................................................................. 3
2.2. PCI の開発内容 ................................................................................................................... 4
2.2.1. 「テスト開発者と管理者」部分 ................................................................................. 4
2.2.1.1. 集計値の表示項目の編集................................................................................... 15
2.2.1.2. 多言語対応 ........................................................................................................ 16
2.2.2. 「受験者を監督」部分.............................................................................................. 18
3. 作成した PCI の構成 ................................................................................................................ 20
3.1. 散布図 .............................................................................................................................. 20
3.1.1. PCI ファイル構成 ...................................................................................................... 20
3.1.2. PCI を構成するファイルの説明 ................................................................................ 21
3.2. クロス集計 ....................................................................................................................... 22
3.2.1. PCI ファイル構成 ...................................................................................................... 22
3.2.2. PCI を構成するファイルの説明 ................................................................................ 23
4. PCI マニュアル作成 ................................................................................................................. 24
5. センタ等への報告・協議 ........................................................................................................ 25
5.1. 有識者会議等の開催日程 ................................................................................................. 25
5.2. 有識者会議等での協議とその結果................................................................................... 26

1

-196-

1. はじめに
件名：教科「情報」の CBT 試験を TAO で実施するための PCI に関する調査研究業務（データ
活用問題）
（以下、
「本件」と言う）に関して、データアクセス株式会社（以下、「データアクセス社」と言う）が取り組んだ調査研究について報告する。

2

-197-

2. PCI の開発
2.1. 基本方針
本件では、以下の 2PCI を開発する。
散布図
クロス集計
これらの PCI は表 1 の TAO 動作環境で動作することを確認した。また、TAO 並びに開発した PCIは主に Chrome をブラウザに用いて動作試験を行った。
表 1

TAO 動作環境項目

内容

TAO バージョン

TAO3.3.0

OS

CentOS7.9

HTTP サーバ

Apache/2.4.6 (CentOS)

プログラミング言語

PHP 7.3.31

RDBMS

10.3.28-MariaDB

ブラウザ

Chrome98.0

備考

Chrome 以外の推奨ブラウザ
は以下の通りFirefox
Safari
Edge

3

-198-

2.2. PCI の開発内容
2.2.1. 「テスト開発者と管理者」部分① アイテムのオーサリング画面において，TAO 上でデータ活用問題を出題できるよう，通常の Interactions と併せて「散布図エリア」及び「クロス集計表エリア」を置くことができるような PCI を作成すること。具体的には，Custom Interactions 欄に「散布図エリア」
及び「クロス集計表エリア」を置くためのアイコンを追加し，当該アイコンを白紙の問題
作成ページにドラッグ＆ドロップすると「散布図エリア」又は「クロス集計表エリア」を伴う問題を作成できるようにすること。
（１） Custom Interactions 欄への散布図、クロス集計の各 PCI アイコン配置
TAO 上で以下の操作を行うことにより、作成した PCI を Custom Interactions 欄に追加して、登録できる。
① TAO にログインしてアイテム編集画面を開き、任意のアイテムを選択して「オーサリング」
をクリックする。

② Custom Interactions 欄を開き、「カスタム操作の管理」をクリックする。

4

-199-

③ 「インタラクション追加」をクリックする。

④ PCI の ZIP ファイルをドラッグ＆ドロップするか、「参照」してファイル選択し、「アップロードする」をクリックする。

5

-200-

⑤ 以上の操作手順により、Custom Interactions 欄に登録した PCI のアイコンが表示される。

6

-201-

（２） 「散布図エリア」「クロス集計表エリア」を伴う問題の作成（１）の手順で Custom Interactions 欄に追加した PCI は、そのアイコンを問題作成エリアにドラッグ＆ドロップすることにより、当該問題を作成できる。

次の図は「散布図」の PCI をドラッグ＆ドロップして「散布図」の問題を作成可能とした例で
ある。

7

-202-

② ①で作成するデータ活用問題で以下を実現できるか検討し，可能な場合は実装すること。
実装が不可能な場合は，その理由について調査研究報告書に記載すること。

＜散布図エリアを伴う問題＞・作成する散布図の相関係数を表示する。
・作成する散布図の回帰直線を表示する。
・グループを識別する散布図を作成する。
・解答者が任意のデータ（外れ値など）を取り除いて散布図を作成する。
・全ての作業を取り消し，作業開始前の画面に戻る（リセットする。）。
・一つ前の作業を取り消し，一つ前の画面に戻る（やり直す。）。
・解答者が不適切な項目を選択して散布図を作成した際にエラーメッセージを表示する。
・その他（５．４．にてセンター等と協議し，可能な限り対応すること。）＜クロス集計エリアを伴う問題＞・集計対象とする実データの一部（又はスクロールして全部）を見ることができる。
・集計対象とする実データをソートして，昇順又は降順で表示することができる。
・「クロス集計描画」スペースのタブを切り替えると，クロス集計表を基に作成されたグラフを表示できる。（描画するグラフの種類は，解答者が選択できるものとし，グラフ種類は主要なものに対応する。）
・全ての作業を取り消し，作業開始前の画面に戻る（リセットする。）。
・一つ前の作業を取り消し，一つ前の画面に戻る（やり直す。）。
8

-203-

・解答者が不適切な項目を選択してクロス集計を行った際にエラーメッセージを表示する。
・その他（５．４．にてセンター等と協議し，可能な限り対応すること。）（３） 散布図に関する対応
対応結果を表 2 に示す。尚、備考欄に「有識者会議の協議に基づく」と記述した項目については、表 9 も参照のこと。
表 2
No.

協議の内容

1

作成する散布図の相関係数を散布図に関する対応結果
対応の

対応結果

有無
○

表示する

備考

オーサリング画面のスタイルエデ
ィタ部に制御機能を実装し、受験者
画面での相関係数表示を可能とす
る

2

作成する散布図の回帰直線を

○

表示する

オーサリング画面のスタイルエデ
ィタ部に制御機能を実装し、受験者画面での回帰直線表示を可能とする

3

グループを識別する散布図を

○

作成する

オーサリング画面のスタイルエデ
ィタ部に制御機能を実装し、受験者画面でのグループ識別表示を可能とする

4

解答者が任意のデータ（外れ○・「外れ値」機能を必要としない問題

有識者会値など）を取り除いて散布図もあるため、本機能を有効にするか

議の協議

を作成する

否かをオーサリング画面のスタイに基づく

ルエディタ部で選択可能とする・グラフ上でクリックすると、自動的に CSV ファイルデータ（基データ）
表示の画面をスクロールし、選択した値をハイライト表示する
・当該データのチェック欄の操作によりそのデータを外れ値として取
り除く
5

6

全ての作業を取り消し、作業○

受験者画面に「リセット」ボタンを開始前の画面に戻る（リセッ設け、クリックして初期の表示に戻トする）

ることを可能とする

一つ前の作業を取り消し、

×

利用機会が少ないと想定されるこ

有識者会

一つ前の画面に戻る（やりとに加え、開発稼働量が大きいた

議の協議

直す）

め、本件では実施しない

に基づく

9

-204-

7

解答者が不適切な項目を選択

×・不適切な項目を選択時の動作も受 有 識 者 会

して散布図を作成した際にエ験者の理解状況を質す効果がある

議の協議

ラーメッセージを表示する。

ため、システムで「不適切な項目選に基づく択」の判断を行わず、エラーメッセ （ エ ラ ーージとして表示しない

メッセー

・0 除算等プログラム実行に伴うエ ジ を 表 示
ラー発生時のみエラーメッセージ

する実ケ

を表示する

ー ス な
し）

9

オーサリング画面の問題作○

オーサリング画面のスタイルエデ

有識者会

成画面では作問者が編集でィタ部でのみ編集可能とし、問題作議の協議きないようにする

成部では編集者が問題操作できな に基づく
いよう機能制限する

10

11

オーサリング画面のスタイ○

オーサリング画面の スタイルエデ

有識者会

ルエディタ部にて、初期表ィタ部にて、予め表示する散布図の 議 の 協 議

示条件設定の「未選択」を表示条件設定の「未選択」を許容す

許容する

る

基データ、散布図をタブでな

○

に基づく

・表示する大きさ、位置を受験者が 有 識 者 会

い形式で複数表示する（表示自由に設定、変更できるようにする 議 の 協 議する大きさ、位置を受験者が対応は極めて困難

自由に設定できること）

・別ウィンドウにより表示することに基づくは、ブラウザのポップアップブロッ
ク等により動作を保証できない
・上記理由により、受験者画面にて、追加する散布図を、表示済みの散布
図の下に順次表示する形式で実装
する
・表示数は予め表示分を含め、最大
4 とする
12

同じ値の表示を点のサイズ○

・受験者画面にてバブルチャートで 有識者会

を変更する等により重なり表示可能とする

議の協議が分かるように表示する

・バブルチャートでは使用するライに基づく

ブラリ機能制限により、回帰直線は表示不可とする・複数個の値があるところに重なって点がある場合に個数を把握できないため、複数個の値があるところの重なりを大きくする（度数によっ
10

-205-

てバブルのサイズを大きくする）
13

表の数値データの表示を右

○

寄せにする

受験者画面の表の数値データを右有識者会

寄せ表示とする

議の協議
に基づく

14

CSV ファイルで取り込んだ○・CSV ファイルのデータを受験者画 有 識 者 会

データを受験者画面に表示

面に表示する

議の協議

する

・CSV ファイルの文字コードを UTF-に基づく8 に制限する
15

CSV ファイルの文字コード〇

CSV ファイルの文字コードを UTF-8

有識者会

に制限する

議の協議
に基づく

16

外れ値のチェックボックス○

オーサリング画面のスタイルエデ

有識者会の表示方法は、案１と案２

ィタ部で案１と案 2 の何れかの形式 議 の 協 議の何れかの形式とするを選択して設定可能とするに基づく

オーサリング画面のスタイルエデ

有識者会

ィタ部で表示する

議の協議

・案１：
「ゴミ箱」のアイコンにして、外れ値とするものにチェックを付ける・案２：「目」のアイコンにして、予め全ての値をチェックしておき、外れ値とす
るもののチェックを外す
17

回帰直線において以下を表○示する・回帰線の式に基づく

・R の二乗（決定係数値）
18

受験者画面に表示する CSV○

データとグラフ等のタイト

オーサリング画面のスタイルエデ

有識者会

ィタ部に当該設定機能を実装する

議の協議

ル表示を、オーサリング画に基づく面のスタイルエディタ上で設定できるようにする
19

オーサリング画面のスタイ

オーサリング画面のスタイルエデ

有識者会

ルエディタ部にて受験者画

ィタ部にて受験者画面で以下を可

議の協議

面で以下を可能とするよう能とするようにチェックボックスに基づくに機能変更するを配置して機能を実装する-相関係数値、回帰直線と-相関係数値、回帰直線と式、決式、決定係数値（回帰直線

定係数値（回帰直線表示時のみ）

表示時のみ）の表示の有無の表示の有無-相関係数、回帰直線、決定-相関係数、回帰直線、決定係数（回

○

11

-206-

係数（回帰直線表示時の帰直線表示時のみ）の表示/非表示

み）の表示/非表示を受験者

受験者が操作できるか否かが操作できるか否か
問題の出題時に予め複数の20×

本対応はオーサリング画面の他の有識者会グラフを表示することを可

機能が修正を含めて開発完了後の議の協議能にする。ただし、受験者対応となるため、開発スケジュールに基づくが作成可能なグラフ数（最の確保が極めて困難である

大 4）の枠を使うことになるので、出題時にあらかじ
めグラフを表示する場合、その分だけ受験者が作成できるグラフ数が減る
多言語対応を行う

21〇

・日本語と英語に対応する

有識者会

・スタイルエディタ部「言語」にて

議の協議

Japanese を選択すると日本語の、そに基づく

れ以外は英語の、それぞれ表示となる（４） クロス集計に関する対応
対応結果を表 3 に示す。
表 3 クロス集計に関する対応結果
No.

協議の内容

1

集計対象とする実データの一

対応の

対応結果

有無
○

部（又はスクロールして全受験者画面にてスクロール可能とする部）を見ることができる。
2

集計対象とする実データをソ○

受験者画面にてソート可能とする○

オーサリング画面スタイルエディートして、昇順又は降順で表示することができる。
3

4「クロス集計描画」スペースのタブを切り替えると、クロ

タ部機能により、CSV ファイルのデス集計表を基に作成されたグータに基づき表示する表/グラフ 11

ラフを表示できる。
（描画する種から受験者が使用可能なものをグラフの種類は、解答者が選設定可能とする。受験者はその設定択できるものとし、グラフ種

された表/グラフを選択して表示可

類は主要なものに対応する）

能とする

全ての作業を取り消し、作業開始前の画面に戻る（リセッ○

受験者画面に「リセット」ボタンを設け、クリックして初期の表示に戻
12

-207-

備考

トする）
5

6

一つ前の作業を取り消し、一ることを可能にする
利用機会が少ないと想定されるこ有識者会

つ前の画面に戻る（やり直とに加え、開発稼働量が大きいた

議の協議

す）

め、本件では実施しないに基づく・不適切な項目を選択時の動作も受

有識者会

解答者が不適切な項目を選択

×○

してクロス集計を行った際に験者の理解を質す効果があるため、 議 の 協 議

エラーメッセージを表示するシステムで「不適切な項目選択」のに基づく判断を行わず、エラーメッセージと（エラー

して表示しないメッセー

・0 除算等プログラム実行に伴うエ ジ 表 示 の7

利用できる表/グラフの種○類、初期表示する縦軸、横

ラー発生時のみエラーメッセージ

実ケース

を表示する

なし）

オーサリング画面のスタイルエデ

有識者会

ィタ部で設定可能とする

議の協議

軸、グラフの内容を設定可

に基づく

能とする
8

基データ、クロス集計表/グ○・表示する大きさ、位置を受験者が 有 識 者 会

ラフをタブでない形式で複自由に設定、変更できるようにする 議 の 協 議

数表示する（表示する大き対応は極めて困難

さ、位置を受験者が自由に設・別ウィンドウにより表示すること

定できること）は、ブラウザのポップアップブロッに基づく

ク等により動作を保証できない
・上記理由により、受験者画面にて、追加するクロス集計表/グラフを、表示済みのクロス集計表/グラフの下に順次表示する形式で実装する・表示数は予め表示含め、最大 4 とする
9オーサリング画面の問題作○

オーサリング画面のスタイルエデ

有識者会

成画面では作問者が編集でィタ部でのみ編集可能とし、問題作議の協議きないようにする

成部では編集者が問題操作できなに基づくいこととする10

11

オーサリング画面のスタイ○

オーサリング画面の スタイルエデ

有識者会

ルエディタ部にて、初期表ィタ部にて、予め表示するクロス集 議 の 協 議

示条件設定の「未選択」を計表の表示条件設定の「未選択」を に基づく

許容する

許容する

CSV ファイルで取り込んだデータを受験者画面に表示○

CSV ファイルのデータを受験者画面 有 識 者 会
に表示する
13

-208-

議の協議

する
12

CSV ファイルの文字コードに基づく〇

CSV ファイルの文字コードを UTF-8

有識者会

に制限する

議の協議
に基づく

13

オーサリング画面の X-○

多言語化対応に使用する messages 有 識 者 会

axis、Y-axis を「列」、

ファイルの書式が、[英語]→[日本「行」と分かるように変更

語]であること、それぞれ複数を選 に基づく

する

択可能であること、から、それぞれ議の協議「Row items」、「Column items」と表示する
14

問題の出題時に予め複数の×

本対応はオーサリング画面の他の有識者会グラフを表示することを可

機能が修正を含めて開発完了後の議の協議能にする。ただし、解答者対応となるため、開発スケジュールに基づくが作成可能なグラフ数（最の確保が極めて困難である

大４つ）の枠を使うことになるので、出題時にあらかじめグラフを表示する場
合、その分だけ受験者が作成できるグラフ数が減る
15

・集計値(Aggregator)のプ・集計値(Aggregator)のプロダウ

有識者会

ロダウンメニュー表示項目

ンメニュー表示項目を「件数」
、

議の協議

を「件数」
、
「合計」、「平

「合計」
、
「平均」
、
「最大」
、「最

に基づく

均」、「最大」、「最小」のみ

小」のみとするとする・集計値(Aggregator)としてプロダ 集 計 値 表

・その他の項目は PCI プロ

ウンメニューから選択できる項目

示項目のグラムソースファイルをテ

を Javascript ファイルで編集可能

具体的な

キストエディタ等により編

とする

編集方法

集することにより追加を可・納入する当該 Javascript ファイ

は能とし、その実施方法をマ

ルは「件数」、
「合計」
、
「平均」
、
「最

2.2.1.1

ニュアルとして記述する大」、「最小」のみプルダウンメニ 参 照 の こ〇

ューに表示する設定とする
16

多言語対応を行う〇と・TAO が具備する多言語対応機能を 有 識 者 会
用いて日本語と英語に対応する

議の協議

・スタイルエディタ部「言語」にてに基づく

Japanese を選択すると日本語の、それ以外は英語の、それぞれ表示とな

具体的な

る

操 作 は
2.2.1.2

14

-209-

参照のこ
と
2.2.1.1. 集計値の表示項目の編集（１） 集計値の表示項目
集計値の表示が可能な項目を表 4 に示す。
表 4
No.

集計値の表示が能な項目一覧

項目名（英語表記）

項目名（日本語表記）

備考

1

Count

件数

*

2

Count Unique Values

ユニーク値を表示(CSV)

3

Sum

合計

4

Integer Sum

合計(整数)*

5

Average

平均*

6Median中央値

7Sample Variance

標本分散

9

Sample Standard Deviation

標本標準偏差10

Minimum

最小*11

Maximum

最大

*

12

First

最初

13

Last

最後

14

Sum over Sum

選択 2 項目の比率

1580% Upper Bound

選択 2 項目の比率(上限 80%)

16

80% Lower Bound

選択 2 項目の比率(下限 80%)17

Sum as Fraction of Total

合計割合

18

Sum as Fraction of Rows

合計割合(行)19

Sum as Fraction of Columns

合計割合(列)20Count as Fraction of Total

件数割合

21

Count as Fraction of Rows

件数割合(行)

22

Count as Fraction of Columns

件数割合(列)* 予め選択可能に設定している項目（２） 集計値表示項目の編集
編集対象のファイルと編集箇所を以下に示す。
・(PCI のルートディレクトリ)/creator/widget/states/Question.js (L73-99)
・(PCI のルートディレクトリ)/runtime/js/renderer.js (L38-64)
上記の両ファイルにおいて、集計値として表示する項目はコメントアウト（//を記述）し、表示しない項目はコメントを外す(//を削除）（図 1）。

15

-210-

/**
* 除外する Aggregator*/
const EXCLUDED_AGGREGATORS = [// "Count",<-- 集計値の項目として表示する"Count Unique Values",<-- 集計値の項目として表示しない"List Unique Values",<-- 集計値の項目として表示しない"Sum",<-- 集計値の項目として表示しない// "Integer Sum",<-- 集計値の項目として表示する// "Average",<-- 集計値の項目として表示する"Median",<-- 集計値の項目として表示しない"Sample Variance",<-- 集計値の項目として表示しない"Sample Standard Deviation",<-- 集計値の項目として表示しない// "Minimum",<-- 集計値の項目として表示する// "Maximum",<-- 集計値の項目として表示する"First",<-- 集計値の項目として表示しない"Last",<-- 集計値の項目として表示しない"Sum over Sum",<-- 集計値の項目として表示しない"80% Upper Bound",<-- 集計値の項目として表示しない"80% Lower Bound",<-- 集計値の項目として表示しない"Sum as Fraction of Total",<-- 集計値の項目として表示しない"Sum as Fraction of Rows",<-- 集計値の項目として表示しない"Sum as Fraction of Columns", <-- 集計値の項目として表示しない"Count as Fraction of Total", <-- 集計値の項目として表示しない"Count as Fraction of Rows",<-- 集計値の項目として表示しない"Count as Fraction of Columns" <-- 集計値の項目として表示しない];
図 1

集計値として表示する項目の編集

2.2.1.2. 多言語対応
TAO に備わる多言語対応機能を使用する。
表示言語の選択は、オーサリング画面スタイルエディタ部のアイテムプロパティの「言語」プ
ルダウンメニューから対象の言語を選択して行う（図 2）。
「Japanese」を選択すると日本語表記となり、それ以外を選択すると英語表記となる。

16

-211-

図 2

表示言語の選択

17-212-

2.2.2. 「受験者を監督」部分① テストの受験画面において，データ活用問題を出題・解答できるようにすること。
（１） テスト受験画面におけるデータ活用問題の出題・解答
本実施内容は開発した PCI を TAO にアップロードし、以下を実施することにより確認した。
オーサリング画面での「プレビュー」実行による表示と動作の確認
受験者画面での表示と動作の確認② 解答者の「散布図エリア」及び「クロス集計エリア」での作業内容のデータ（操作ログ）の取得が可能かどうか検討し，実装する，又は検討結果を調査研究報告書に記載すること。
（２） 操作ログの取得
以下の手順で操作ログを表示、出力できる。
① TAO の「結果」表示画面で対象の試験を選択して、「View」をクリックする。

② 操作ログを JSON 形式で画面上に表示する。
「CSV エクスポート」ボタンクリックにより、CSV
ファイルに出力できる。尚、出力した CSV ファイルの文字コードは UTF-8 であることに留意
すること。

18

-213-

尚、JSON タグ名はオーサリング画面のスタイルエディタ部のレスポンス識別子欄に設定できる。

※出力されたログの見方は PCI 毎に以下のドキュメントを参照のこと。
散布図:開発した PCI の使用に関するマニュアル（散布図） 4.2.操作ログの見方
クロス集計:開発した PCI の使用に関するマニュアル（クロス集計）4.2.操作ログの見方

19

-214-

3. 作成した PCI の構成
散布図 PCI とクロス集計 PCI は、Wiquid 社製ツール（PCI Generator for TAO platform、以下、「PCI Generator」と言う）を基に開発した。
3.1. 散布図
3.1.1. PCI ファイル構成
散布図 PCI の具体的なファイル構成を図 3 に示す。

図 3 散布図 PCI のファイル構成

20

-215-

3.1.2. PCI を構成するファイルの説明
散布図 PCI を構成するファイルの説明を表 5 に示す。
表 5 散布図 PCI を構成するファイル
No.
1

ファイル名
pciCreator.js

ファイルの説明備考

初期化時に作問機能のフックとなる AMD モジ
ュール2

pciCreator.json

サーバとクライアントが pciCreator を記述するために必要なすべてのデータ（名前、ラベル、必要な js、css など）を含むマニフェストファ
イル

3

icon.svg

PCI のアイコン画像

4

markup.tpl

出題画面の HTML テンプレート

5propertiesForm.tpl

スタイルエディタ(オーサリング)の HTML テン
プレート

6Widget.js(PCI Generator が必要とするファイル)

7

Question.js

オーサリング処理の JavaScript

8

states.js(PCI Generator が必要とするファイル)9

DncScatterPlot.amd.js

出題機能のフックとなる AMD モジュール

10base.css

基本のスタイルシート

11

ScatterPlot.css

出題画面のスタイルシート

12material-dashboard.css

管理画面用ライブラリ MaterialDashboard のスタイルシート13

theme.minimum.css

jquery.tablesorter.js のスタイルシート

14bignumber.js

散布図の回帰直線表用ライブラリ

15

chart.js

グラフ描画用ライブラリ

16

i18n.translation.js

多言語対応用ライブラリ17

jquery.csv.js

CSV ファイルのパース用ライブラリ18

jquery.tablesorter.js

基データのソートライブラリ

19

MathJax.js

数式表示用ライブラリ20

renderer.js

出題画面を描画する JavaScript

21

-216-

SVG 形式

3.2. クロス集計
3.2.1. PCI ファイル構成
クロス集計 PCI の具体的なファイル構成を図 4 に示す。

図 4 クロス集計 PCI のファイル構成

22

-217-

3.2.2. PCI を構成するファイルの説明
クロス集計 PCI を構成するファイルの説明を表 6 に示す。
表 6
No.
1

クロス集計 PCI を構成するファイル

ファイル名
pciCreator.js

ファイルの説明備考

初期化時に作問機能のフックとなる AMD モジ
ュール2

pciCreator.json

サーバとクライアントが pciCreator を記述するために必要なすべてのデータ（名前、ラベル、必要な js、css など）を含むマニフェストファ
イル

3

icon.svg

PCI のアイコン画像

4

markup.tpl

出題画面の HTML テンプレート

5propertiesForm.tpl

スタイルエディタ(オーサリング)の HTML テン
プレート

6Widget.js(PCI Generator が必要とするファイル)

7

Question.js

オーサリング処理の JavaScript

8

states.js(PCI Generator が必要とするファイル)

9

PivotTable.amd.js

出題機能のフックとなる AMD モジュール

10base.css

基本のスタイルシート

11

c3.css

グラフ描画ライブラリのスタイルシート

12

PivotTablet.css

出題画面のスタイルシート

13material-dashboard.css

管理画面用ライブラリ MaterialDashboard のスタイルシート

14

pivot.css

PivotTable ライブラリのスタイルシート

15

theme.minimum.css

jquery.tablesorter.js のスタイルシート

16

i18n.translation.js

多言語対応用ライブラリ17

jquery.csv.js

CSV ファイルのパース用ライブラリ18

jquery.tablesorter.js

基データのソートライブラリ19

renderer.js

出題画面を描画する JavaScript20

c3_renderers.js

グラフ描画用ライブラリ21

pivot.js

クロス集計表ライブラリ

23

-218-

SVG 形式

4. PCI マニュアル作成
散布図、クロス集計の各 PCI について作成したマニュルの一覧を表 7 に示す。
表 7

作成マニュアル一覧

No.

マニュアル名説明1

ソー スコードに 関す

PCI ファイル構成に基づく

る説明文書

説明を記述

開 発 し た PCI を

MD 形式で、PCI の概要及びGitHub 等で公表する

PCI を TAO にインストールす

際に記載する READMEる手順を記述使用 に関するマ ニュ

オーサリングに関する操作

アル

説明を中心に記述した操作

2

3

説明書
* ○は該当するマニュアルを作成したことを表す

24

-219-

PCI*

備考

散布図

クロス集計

○

○

○

○

○

○

5. センター等への報告・協議
5.1. 有識者会議等の開催日程
表 8 に示す通り、5 回の有識者会議と 2 回の大学入試センターとの打合せ（以下、センター会議）を行った。
表 8

有識者会議等の開催日程

会議等

開催日

第 1 回有識者会議

2021 年 12 月 6 日

概要・開発スケジュール案

備考
ZOOM

・クロス集計モック（ブラウザで動作）説明と、それに基づく全体の協議センター会議2021 年 12 月 15 日

・第 1 回有識者会議での要望への対

ZOOM

応協議
第 2 回有識者会議

2021 年 12 月 23 日

・進捗状況の方向

ZOOM

・散布図モック（ブラウザで動作）説明と、それに基づく全体の協議センター会議2021 年 12 月 27 日

・第 2 回有識者会議での要望への対

ZOOM

応協議
第 3 回有識者会議

2022 年 1 月 25 日

・進捗状況の報告

ZOOM

・データアクセス社操作による散布図とクロス集計の各 PCI の操作と動作の説明と、それに基づく協議
第 4 回有識者会議

2022 年 2 月 14 日

・進捗情報の報告

ZOOM

・データアクセス社が提供した散布図、クロス集計を行う各 PCIβ版に関する協議
第 5 回有識者会議

2022 年 3 月 3 日

・進捗情報の報告
・データアクセス社が提供した散布図、クロス集計を行う各 PCI 暫定版
に関する協議

25

-220-

ZOOM

5.2. 有識者会議等での協議とその結果
有識者会議等で出された機能追加/変更の要望とその協議結果を表 9 に示す。
表 9 機能追加/変更要望と協議結果
No.

ご要望の内容1【散布図・クロス集計】
「一

対応の

協議結果

有無
×

備考

利用機会が少ないと想定されるこつ前の作業を取り消し、一つとに加え、開発稼働量が大きいた

前の画面に戻る（やり直め、本件では対応を見送るす）」
2【クロス集計】縦軸、横軸の設○定、利用できるグラフの種類、

オーサリング画面で設定可能とする

初期表示内容を設定可能とす
る
3【散布図・クロス集計】エラー○

メッセージの表示対象

0 除算等プログラム実行に伴うエラ 発 生 の 実
ー発生のみ扱うこととする

ケース無
し

4

【散布図・クロス集計】基デー○・表示する大きさ、位置を受験者がタ、散布図、クロス集計表/グ

自由に設定、変更できるようにする

ラフをタブでない形式で複数対応は極めて困難

表示する（表示する大きさ、位・別ウィンドウにより表示すること

置を受験者が自由に設定できは、ブラウザのポップアップブロッ

ること）

ク等により動作を保証できない
・上記理由により、受験者画面にて追加する散布図、クロス集計表/グ
ラフを、表示済みの散布図、クロス
集計/グラフの下に順次表示する・表示数は散布図、クロス集計の予め表示分を含め、最大 4 とする

5【散布図・クロス集計】複数グ―・追加等による複数のグラフを上下

ラフの表示を上下でなく横にでなく左右固定の位置に配置して幅を変更して配置する方式に表示することは技術的には可能で、ついて検討結果を報告するこ実現のための専用ライブラリ等のと追加の使用は不要
・ただし、個々のグラフ表示エリア
が従来の半分以下となるため、ユー
ザインタフェースの実用面では、散布図、クロス集計ともデータカラム
26

-221-

数や表示条件設定部分の配置、項目
サイズの調整が必要となる・その結果、受験者の視認性を確保する観点から、扱うデータや分析項
目に制限が発生する虞がある
6【散布図】同じ値の表示を点○・受験者画面にてバブルチャートでのサイズを変更する等により表示可能とする

重なりが分かるように表示す・バブルチャートでは使用するライる

ブラリ機能制限により、回帰直線は表示不可とする・複数個の値があるところに重なって点がある場合に個数を把握できないため、複数個の値があるところの重なりを大きくする（度数でバブルの大きさを大きくする）

7【散布図・クロス集計】CSV○

ファイルで取り込んだデータ

・CSV ファイルのデータを受験者画面に表示するを受験者画面に表示する
8【散布図・クロス集計】表の○数値データの表示を右寄せに

表の数値データを右寄せ表示とす
る

する
9【散布図・クロス集計】CSV〇

UTF-8 に制限する○

・仕様書通り、外れ値は散布図でのファイルの文字コード10【散布図・クロス集計】外れ値をグラフからポインティン

み有効とする

グして選択する・「外れ値」機能を必要としない問題もあるため、本機能を有効にするか否かをオーサリング画面のスタイ
ルエディタ部で選択可能とする・グラフ上でクリックすると、自動的に CSV ファイルデータ表示の画面をスクロールし、選択した値をハイライト表示する・当該データのチェック欄の操作によりそのデータを外れ値として取り除く

11【散布図・クロス集計】オー
サリング画面の問題作成画面○

オーサリング画面のスタイルエデ
ィタ部でのみ編集可能とし、問題作
27

-222-

12

13

では作問者が編集できないよ

成部では編集者が問題操作できな

うにする

いよう機能制限する【散布図・クロス集計】オー○オーサリング画面のスタイルエデ

サリング画面のスタイルエデ

ィタ部にて、予め表示する散布図、ィタ部にて、初期表示条件設

クロス集計表の表示条件設定の「未定の「未選択」を許容する

選択」を許容する【散布図】外れ値のチェック○

オーサリング画面のスタイルエデ

ボックスの表示方法は、案１

ィタ部で案１と案 2 の何れかの形式と案２の何れかとするを選択して設定可能とする

・案１：ゴミ箱のアイコンにして、外れ値とするものにチェックを付ける
・案２：目のアイコンにして、予め全ての値をチェックしておき、外れ値とするもののチェックを外す
14【散布図】回帰直線において

○

表示する

○

スタイルエディタ部に当該設定機

以下を表示する・回帰線の式・R の二乗（決定係数の値）
15【散布図・クロス集計】CSV
データとグラフ等のタイトル

能を追加する

表示を、スタイルエディタ上で設定できるようにする
16【クロス集計】オーサリング○

多言語化対応に使用する messages

画面の X-axis、Y-axis をファイルの書式が、[英語]→[日本「列」、「行」と分かるように語]であること、それぞれ複数を選変更する

択可能であること、から、それぞれ「Row items」、「Column items」と表示する

17【散布図】オーサリング画面○

オーサリング画面のスタイルエデのスタイルエディタ部にて受ィタ部にて受験者画面で以下を可験者画面で以下を可能とする能とするようにチェックボックス

ように機能変更するを配置して機能を実装する-相関係数値、回帰直線と-相関係数値、回帰直線と式、決定式、決定係数値（回帰直線表

係数値（回帰直線表示時のみ）の示時のみ）の表示の有無

表示の有無-相関係数、回帰直線、決定-相関係数、回帰直線、決定係数（回
28

-223-

係数（回帰直線表示時のみ）

帰直線表示時のみ）の表示/非表示の表示/非表示を受験者が操

受験者が操作できるか否か作できるか否か
18【散布図・クロス集計】

×

本対応はオーサリング画面の他の問題の出題時に予め複数のグ機能が修正を含めて開発完了後のラフを表示することを可能に対応となるため、開発スケジューする。ただし、解答者が作成

ルの確保が極めて困難であるた

可能なグラフ数（最大４つ）

め、対応を見送るの枠を使うことになるので、出題時にあらかじめグラフを表示する場合、その分だけ受験者が作成できるグラフ数が
減る
19

20

【クロス集計】〇・集計値(Aggregator)のプロダウ・集計値(Aggregator)のプ

ンメニュー表示項目を「件数」、

ロダウンメニュー表示項目

「合計」
、
「平均」
、
「最大」
、「最

を「件数」
、
「合計」、「平小」のみとする

均」、「最大」、「最小」のみ

・集計値(Aggregator)としてプロダとする

ウンメニューから選択できる項目

・その他の項目は PCI プロ

を Javascript ファイルで設定可能

グラムソースファイルをテとする

キストエディタ等により編・納入用の当該 Javascript ファイ

集することにより追加を可

ルは「件数」、
「合計」
、
「平均」
、
「最

能とし、その実施方法をマ

大」、「最小」のみプルダウンメニ

ニュアルとして記述する

ューに表示する設定とする【散布図・クロス集計】〇

多言語対応を行う

・日本語と英語に対応する・スタイルエディタ部「言語」にて japanese を選択すると日本語の、それ以外は英語の、それぞれ
表示となる

21

【散布図・クロス集計】△

今回の調査研究の期間・経費の範囲

タブレット端末からのアクセ

においては、タブレット端末への対スも対象として開発する。

応を十分に行うことができず、タブ
レット端末での操作に一部制約がある。例えば、クロス集計 PCI では
解答時にドラッグ・アンド・ドロッ
プの操作が必要となる場合がある
が、タブレットのタッチパネルによ
29

-224-

るドラッグ・アンド・ドロップの操作が現時点ではできない（ただし、タッチパネルではなく、マウスやト
ラックパッドを使用する場合はこの限りではない。
）。

30

-225-

-226-

入学者選抜における CBT 活用に関するワーキングチーム委員（五十音順）（職名は令和４年５月現在）◎：座長※：PCI に関する調査研究において業者との協議に参画した委員（委員）
植 野 真 臣電気通信大学大学院情報理工学研究科教授※植 原 啓 介

慶應義塾大学環境情報学部教授※宇 都 雅 輝

電気通信大学大学院情報理工学研究科准教授

澤 木 泰 代
※辰 己 丈 夫
西 郡

大◎※萩 原 兼 一
廣 瀬 英 雄※松 浦 敏 雄

早稲田大学教育・総合科学学術院教授
放送大学教養学部教授
佐賀大学アドミッションセンター教授
大阪大学名誉教授、大学院情報科学研究科招へい教授
中央大学研究開発機構教授、久留米大学客員教授
大和大学理工学部教授

石 岡 恒 憲(独)大学入試センター研究開発部長 教授

神 脇 順 子(独)大学入試センター試験問題調査官（英語担当）

荘 島 宏二郎(独)大学入試センター研究開発部准教授

寺 尾 尚 大(独)大学入試センター研究開発部助教※水 野 修 治(独)大学入試センター試験問題調査官（情報担当）※宮 澤 芳 光(独)大学入試センター研究開発部助教（臨時委員）※青 山 和 裕

愛知教育大学教育学部准教授※田 﨑 丈 晴

国立教育政策研究所教育課程研究センター研究開発部教育課程調査官（オブザーバー）
浅 原 寛 子

文部科学省総合教育政策局調査企画課学力調査室長

岩 間 裕 美国立教育政策研究所教育データサイエンスセンターコンピュータ使用型調査推進課長

大 野 彰 子

国立教育政策研究所教育データサイエンスセンター長

片 岡靖

国立教育政策研究所研究企画開発部総括研究官

桐 生

崇

文部科学省総合教育政策局教育ＤＸ推進室長

平 野 博 紀文部科学省高等教育局大学振興課大学入試室長

前 田 幸 宣前文部科学省高等教育局大学振興課大学入試室長

-227-

協力企業
富士通 Japan 株式会社
BPS 株式会社
データアクセス株式会社
Wiquid（仏）(独)大学入試センター
小 野 賢 志(独)大学入試センター試験企画部長

平(独)大学入試センター試験企画部試験企画課長

千 枝

篠 田 友 香前(独)大学入試センター試験企画部試験企画課試験企画第三係長

堀 越 健一郎(独)大学入試センター試験企画部試験企画課企画調整係長

熊 井 かれん(独)大学入試センター試験企画部試験企画課試験企画第三係-228-