広島市立大模擬問題のプログラミング問題解説
谷 聖一 (日本大学 文理学部 情報科学科)
解説する問題
広島市立大学情報科学部では,令和7年度(2025年度)一般選抜後期日程の個別学力検査で「情報」を課すことを発表しています¹⁾.それに伴い,2023年3月に「模擬問題」を公開し,2023年7月に「出題意図と解答例」を追加し,2024年9月に「模擬問題」と「出題意図と解答例」を改訂²⁾しました.「模擬問題」は「模擬問題A」と「模擬問題B」の2セット公開しており,いずれも大問4題からなり90分で解答をすることが想定されています。いずれのセットにおいても第3問が,学習指導要領³⁾「情報Ⅰ」の「2 内容」の「(3)コンピュータとプログラミング」に関係する問題となっており,ここでは,これらの問題を解説します.
広島市立大学の模擬問題の形式など
広島市立大学情報科学部のアドミッションポリシーの「知識・技能」の項には「情報工学・情報科学を学ぶうえで土台となる高等学校等で修得すべき情報,数学,理科及び語学の知識・技能を有している人」と記されており,この個別試験では情報科学部で学ぶための「情報」の知識・技能を測ることが意図されているようです.
共通テストでは,解答用紙にマークシートが用いられており,多肢選択式あるいは数値選択式の出題がなされます.令和7年度入学者選抜向けの「情報」に関する問題も,多くは多肢選択式あるいは数値選択式の出題です.しかし,すでに個別試験で「情報」を実施している大学には,高知大学理工学部のように自由記述式を併用している例もあります.広島市立大学の模擬問題では,多肢選択式の問題も多いものの,散布図を描く問題や理由や導出過程を述べる論述問題が出題されています.
広島市立大学が公開している模擬問題の「出題意図」は「模擬問題A」と「模擬問題B」とで共通で,今回扱う第3問については次のように記載されています.
第3問はいずれも3つの小問で構成されていますが,この中で多肢選択式は1つだけで,残りはすべて自由記述式が含まれています.また,「コンピュータとプログラミング」に関する問題では,共通テストの「共通テスト用プログラム表記」⁴⁾のように実際のプログラミング言語ではなく一定のプログラミング経験があれば理解できるような表記法を採用したり,京都産業大学⁵⁾のように「プログラムを記述するために用いる記法」を定めたりして,プログラミングに関する問題を直接扱うことが一般的です.しかし,広島市立大学の模擬問題では,プログラミングに関する問題を直接的には扱わず,問題解決方法といった抽象度を少し上げた形での扱いとなっています.
「模擬問題A」第3問
それでは,第3問の問題を見ていきましょう.まず,「模擬問題A」からです.
学校のクラブで小型コンピュータを作成したというストーリーですが,そのことは本質ではありません.特定のプログラミング言語に依存せず,問題解決方法(アルゴリズム)に関する出題をするために,シンプルな構成のコンピュータを導入しています.
問1
最初の問は次のようなものです。
20個の値を足し合わせるので,加算は19回は必要である.主記憶に順に記憶されている20個の値を順に足していくので,最初に1番のメンバのポイントと2番のメンバのポイントの合計を計算し,それ以降はそれまでの合計に今見ているメンバのポイントを加えればよいので,19回の加算のみで合計を求めることができます.
問2
「表3の代わりに各ポイント数の出現回数の表を作成し」とあるので,作成してみます.
$$
\begin{array}{|c|c|} \hline
ポイント数 & メンバ数 \\ \hline
40 & 3 \\ \hline
76 & 8 \\ \hline
65 & 4 \\ \hline
90 & 2 \\ \hline
55 & 3 \\ \hline
\end{array}
$$
現れるポイント数は 40,76,65,90,55 の5種類だけですので,5回の乗算と4回の加算でポイント数の合計を求めることができます.この問題のコンピュータでは,加算も乗算も実行時間は同じです.問1の方法では19回の四則演算を行いましたが,問2の方法では四則演算は9回に減りました.
問3
コンピュータやプログラムを活用する利点に作業の自動化があります.手作業で前処理をして入力形式を変更するのではなく,本来であれば元の入力のままプログラム中で各ポイント数の頻度を数えたいところです.このような処理は辞書などのデータ構造を使えば簡単に実現できますが,「模擬問題A」第3問のコンピュータには,データ構造を扱える言語の処理系は実装されていないのかもしれません.それはさておき,問題の設定に戻り,メンバAたちの気づきや「各ポイント数の出現回数の表を作成する前に,表3のポイント数データに変更を加え,各ポイント数の出現回数を数えやすくかつ確認しやすい表現形式」を考えることにしましょう.今回は手作業を想定していますが,プログラムを作成する場合でも,情報処理の過程でその状況に応じて適切な表現を選択することは重要です.問2では,「表3を見ていてメンバAが気づいた数値データの特徴,使用する四則演算とその実行回数および総実行回数について言及すること」と採点基準が推察できる情報が問題文中にありますが,問3の問題文中にはそのような情報が記述されていないので,解答の際に悩むかもしれません.出題と解答例には,以下の点を含めて論述することとありました.
「模擬問題B」第3問
「模擬問題B」の第3問を見ていきましょう。
機能が限定された自動販売機を題材にした問題です.ただし,自動販売機の動作ではなく,人の動作の流れをフローチャートで表すという問題です.
問1は「アルゴリズムとは何かを説明せよ」という問題です.問題文に文字数の制限はありませんが,解答用紙を見るとこの小問の解答欄は100字程度を書けるスペースです.私が解答するとすると,「有限の長さで記述された基本的な操作(処理)の列からなる処理手順で,この手順に従うと必ず停止し,所望の結果が得られるもの.」のようになりそうです.
問2は,空欄に入るものを選択肢から選ぶことでフローチャートを完成させる問題です.問3は,問2のフローチャートに処理を追加するものです.機能追加・変更やデバッグは,プログラミング能力を判別するのに良い題材です.解答例では「返却レバーの押下」が空欄(イ)の「50円硬貨の投入」と「繰り返しの終了」の間にだけ入っているのですが,「繰り返しの終了」と空欄(ウ)の「購入ボタンの押下」の間になくてもよいのか気になりました.3枚目の50円硬貨を投入した後は購入ボタンを押下するまではいつでも返却レバーを押せるはずです.機械の処理ではなく人の動作なので,その間に「商品を選ぶか返却レバーを押すか悩む」という動作(処理)があるのも自然です.そうすると,「悩む」処理がループしていて,「意思決定」するとブレークする処理を入れたくなります.
まとめ
広島市立大学が公開した令和7年度一般選抜後期日程個別学力検査「情報」の「模擬問題A」と「模擬問題B」の第3問はいずれも,「情報Ⅰ」の「コンピュータとプログラミング」に関する理解や実際のプログラミング経験や情報処理経験を測ることを意図した自由記述式ならではの問題です.扱っている内容は,決して難しいものではありませんが,実践が一定水準に達していない人には取り組みづらい問題ではないかと感じました.また,自由記述式ということで,特に「模擬問題A」第3問は,理解していることを言語化する能力も必要な問題です.
参考文献
1)石光俊介:「情報」個別入試への道,情報処理,Vol.64,No.9,pp.462-466 (Sep. 2023),https://doi.org/10.20729/00227207
2)広島市立大学:2025年度入学者選抜「情報」模擬問題,https://www.hiroshima-cu.ac.jp/guide/category0001/c00038636/
3)文部科学省:高等学校学習指導要領(平成30年告示),https://www.mext.go.jp/content/20230120-mxt_kyoiku02-100002604_03.pdf#page=192
4)大学入試センター:令和7年度大学入学共通テスト試作問題「情報」の概要,https://www.dnc.ac.jp/albums/abm.php?d=511&f=abm00003141.pdf&n=6-1_概要「情報」.pdf#page=18(令和7年度試験の問題作成の方向性,試作問題等,
https://www.dnc.ac.jp/kyotsu/shiken_jouhou/r7/r7_kentoujoukyou/r7mondai.html より)
5)京都産業大学:2025年度入学者選抜「情報」模擬問題(サンプル問題),https://www.kyoto-su.ac.jp/admissions/exam/entrance/general_infoplus/sample.html
(2024年10月17日受付)
(2024年11月20日note公開)
情報処理学会ジュニア会員へのお誘い
小中高校生,高専生本科~専攻科1年,大学学部1~3年生の皆さんは,情報処理学会に無料で入会できます.会員になると有料記事の閲覧,情報処理を学べるさまざまなイベントにお得に参加できる等のメリットがあります.ぜひ,入会をご検討ください.入会はこちらから!