まずは受験生の皆様、大学入学共通テストお疲れさまでした。
今年度よりに「情報Ⅰ」が必須科目として追加され、どのように勉強すべきか戸惑った人も多いのではないでしょうか。また、必須になったことは聞いたが具体的な問題はまだ見ていないという人も多いのではないでしょうか。
そこで、今回は「情報Ⅰ」でどのような問題が出題されたのかを簡単に紹介しつつ、プログラミングに関しての問題について詳しく見ていきたいと思います。
小中学生でも問題に挑戦できるよう、少しかみ砕いた内容を掲載しているので、ぜひ、小中学生の皆さんは挑戦して(保護者の方は挑戦させてあげて)みてください。
試験問題について
本記事掲載時点(2025年2月12日)においては、独立行政法人大学入試センターにはまだ著作権等の処理の関係から試験問題は掲載されていませんでした。(正答については掲載済み)
ただ、東進さんには試験問題のスキャンデータが掲載されていましたので、こちらの情報リンクを掲載しておきます。
大学受験予備校・塾の東進ドットコム:共通テスト2025 情報Ⅰ
また、独立行政法人大学入試センターにて掲載されたら改めて内容を更新します。
試験問題の概要
大問1~4に分かれており、設問数は18、マーク数は51となっています。配点は各問題1~4点(主に2、3点)の100点満点となっています。
大問1
情報セキュリティや情報デザインなど色々な分野からの小問で構成されており、情報Ⅰという教科を幅広く理解できているかどうかが問われる内容となっていました。
大問2
A、Bの2つの項目に分かれており、Aではスーパーマーケットにおける情報システムを利用したデータの活用について、Bではグループでの会計時のおつりについて、表計算ソフトを利用したシミュレーションに関する内容となっていました。
大問1より身近な題材となっていました。
大問3
工芸品の製作について、部員や制作日数の関係性のアルゴリズムを理解し、プログラムミングする内容となっていました。工芸部というあまりなじみの少ない題材でしたが、作業人員と工数に置き換えることもでき、プロジェクト管理にもつながる内容でした。昨今、プログラムミング教室が話題となっている中、唯一のプログラミング関係の内容となっており、一番気になるところなのではないでしょうか。こちらについては後程より詳しく見ていきます。
大問4
観光庁が公開していてる旅行者に関するデータについて分析を行う内容となっていました。大問2のAでもデータの分析・活用に関する問題が出題されていたことから、データ分野への力の入れようを感じますね。昨今データ分野への関心が高まっている世の中の影響を受けているように思われます。
試験結果
各教科の平均点、標準偏差等についてはこちらの独立行政法人大学入試センター:実施結果に記載されている通りになります。
情報Ⅰの平均点は、中国語、韓国語に次いで高い69.26となっていました。他教科に比べると比較的高い結果となっていましたので、まだまだ様子見もあって比較的難易度の低い内容となっていたのではないでしょうか。また今回初めてということもあり、多くの受験生が警戒しており、他教科よりも学習に力が入っていたのかもしれませんね。
プログラミングに関する問題に挑戦!!(大問3)
それでは、私が特に注目した大問3、プログラミングに関する問題について、より詳しく見ていきつつ、小中学生の皆さんも挑戦できるように、少し問題を簡単にして紹介したいと思います。
原文
大問3の原文はこちらになります。22~27ページの全6ページとなっています。ここをこのまま読んで問題に挑戦してみてもOKです!
難しい場合、下の簡略化バージョンまでスクロールしてそこから読んでみてください。
簡略化バージョン
それでは、必要な情報のみを抜き取ってプログラミング部分のみ問題を紹介します。
問題の整理
まずどのような状況なのかを簡単に説明します。
工芸部のKさんは、部員たちと協力して工芸品を作ることになりました。そこで、部員たちの作業分担を割り振ることになりました。
工芸品を作るには、下の表のように、工芸品1には4日、工芸品2には1日、工芸品3には3日かかるようになっています。
この工芸品1~9を3人の部員で作っていきます。
下の表のように、作業は空いている人からどんどん行っていくように計画していきます。
この表は、
工芸品1:部員1が1~4日目で作る。
工芸品2:部員2が1日目に作る。
工芸品3:部員3が1~3日目に作る。
そして、
工芸品4:手が空いている部員2が2日目に作る。
という流れを表しています。
この流れをスクラッチで再現してみたので、こちらを参考に1~9の流れをイメージしてください。
工芸品1~9の流れ(リンク先の「中を見る」を押すとプログラムの中が見えますが、ちょっとヒントになるかもなので、解答を確認する際に一緒に見てみてください)
問題①
工芸品5の担当がだれになるかを求めるプログラムを作りたいです。空欄の「キ」の中には次の0~3のうちどれが入るでしょうか。
なお、下のプログラムについて、
Akibiには左から部員1は5日目が、部員2は3日目が、部員3は4日目が空いているというデータが入っています。
Aikibi[1]とすると、Akibiの1番目にある5になり、Akibi[2]とすると、2番目にある3となります。
0: buin < tantou
1: Akibi[buin] < Akibi[tantou]
2: buin > tantou
3: Akibi[buin] > Akibi[tantou]
💡ヒント
一番空いている日付が小さい人を担当にします。
担当と部員の空き日を比べていき、担当より部員の方が小さい場合、
tantouの中の番号を更新していきます。
問題②
下のような、工芸品1~9の担当とその期間を一覧にするプログラムを作りたいです。空欄の「ケ」~「シ」の中には次のうちどれが入るでしょうか。
なお、下のプログラムについて、
Nissuには工芸品1~9の制作にかかる日数が入っています。
6~9行目は問題①と同じです。
10行目では、工芸品○・・・部員○:○日目~○日目を表示します。
11行目では、部員の空いている日を更新します。
「ケ」・「コ」の選択肢
0: buin
1: kougeihin
2: tantou
3: buinsu
4: kougeihinsu
「サ」・「シの選択肢」
0: Nissu[kougeihin]
1: Nissu[tantou]
2: Nissu[kougeihin] – 1
3: Nissu[tantou] – 1
4: Nissu[kougeihin – 1]
5: Nissu[tatou – 1]
💡ヒント
5行目の繰り返しについて、今回の場合は工芸品の数だけ繰り返すようにします。
繰り返し1回目の場合、部員1:1日目~4日目と表示して、部員1の空いている日を5にします。
解答
以下は解答になるので、答えを考えた後スクロールして確認してみてください。
問題①解答
「キ」・・・1: Akibi[buin] < Akibi[tantou]
ヒントにあるように、一番空いている日付が小さい人(=先に作業に入れる人)がだれかを見つけていきます。
buinが2の場合、
Akibi[2] < Akibi[1] は3 < 5 となり、Akibi[2]の方が小さい(=部員2の方が先に作業ができる)ことがいえます。
そのため、tantouを2に更新します。
次にbuinが3の場合、
Akibi[3] < Akibi[2]は4 < 3 と成り立たないため、tantouはそのまま2となります。
問題②解答
「ケ」・・・1: kougeihin
「コ」・・・4: kougeihinsu
「サ」・・・2: Nissu[kougeihin] – 1
「シ」・・・0: Nissu[kougeihin]
工芸品の数だけ繰り返すので、1からkougehinsu(=9)まで繰り返します。そのとき、工芸品の番号が変わっていくので、「ケ」にはkougehinが入ります。
工芸品1の場合、部員1:1日目~4日目になります。
このとき、4という数字はスタートの1日目から工芸品の製作にかかる4日を足したものになりますが、そのまま足すと5日目になってしまいます。
スタートの1日目も入るので、工芸品の製作日数から1日分引いた Nissu[kougeihin] – 1 が「サ」に入ります。
また、空いている日付については、最後の4日目から+1した数 = 工芸品の製作日数 をそのまま足せばよいので、 Nissu[kougeihin] が「シ」に入ります。
さいごに
変数や配列についてはまだあまり知らない人にとっては難しい所があったかと思いますが、何となくイメージはつかめたでしょうか?アルゴリズム自体はそこまで複雑ではないので、プログラミングの経験を積んでいけば小中学生の皆さんでも解くことは可能な問題なのかなと思います。
01ワークショップ・ラボでは、レゴやマインクラフトを使ったプログラミング教室を開いています。興味がありましたらお気軽に無料体験会にお申し込みください。