会誌「情報処理」Vol.66 No.11(Nov. 2025)「デジタルプラクティスコーナー」

大学入学共通テスト「情報I」と高校現場でのプログラミング教育

飯坂正樹1

1プログラミング能力検定協会

 2022年の高等学校における教科「情報I」必修化から3年,2025年1月にいよいよ大学入学共通テスト「情報Ⅰ」が実施された.本稿では,本番の入試問題におけるプログラミング領域の難易度について,プログラミング能力検定による尺度,および高等学校の現場における指導と受験結果の観点から考察する.今後の全国の高等学校における入試対策の参考としていただきたい.

※本稿はプログラミング能力検定協会 推薦論文です.
※本稿の著作権は,著者に帰属します.

1.大学入学共通テスト「情報I」の振り返り

1.1 大学入学共通テスト「情報I」全体について

大学入試センターより公開されている「令和7年度大学入学共通テスト実施結果の概要」によると,「情報I」の受験者数は279,718名,平均点は69.26点であった.平均点については他教科と比較しても高く,いくつかの高等学校のヒアリングからも受験した生徒からは,想定していたよりも簡単だった旨の感想があったようである.

「情報I」は大問4問構成で,それぞれの出題範囲と配点(100点満点)は,大問1が「情報社会,情報デザイン,ネットワーク,情報量」(20点),大問2が「情報システム,シミュレーション」(30点),大問3が「プログラミング」(25点),大問4が「データの活用」(25点)であった.

この構成は大学入試センターが2021年に公開したサンプル問題,また2022年に公開した施策問題とほぼ同じであり,特に「シミュレーション」「プログラミング」「データの活用」については一貫して出題されている.

また情報Iの教科書の知識そのものが問われたのは大問1の一部の問題のみであり,ほとんどの問題はその場で文章や図表の意味を読み取って答えなければいけない問題であった点が特徴的であり,これは2022年の試作問題の傾向を踏襲している.また試作問題と比較すると,より受験者にとって身近なテーマを扱った問題が多く,受験者が問題の理解と思考に集中できるような工夫も見て取れた.

1.2 プログラミングの問題について

大問3の「プログラミング」の問題は,高等学校の工芸部が舞台となっており,まさに受験者にとってイメージがしやすいテーマであった.具体的には「複数の工芸品を限られた工芸部員によって極力短期間で完成させるための作業計画の作成」がプログラムで実現したいことである.

出題の流れは,「目的に対する課題の設定」「作業計画を作る上での工芸部員の作業への割り当て規則の定義」,「プログラムに落とし込む上での変数や配列の定義」,「部分的な実装」,「全体の実装」となっており,まさに開発プロセスにおける要件定義,仕様作成,設計,段階的実装を踏襲している.このことから,単にプログラミングの知識だけを問うのではなく,実際の開発の流れがイメージできていることも問われるような出題といえる.

またプログラミング言語も当初から大学入試センターによって示されていたとおり「共通テスト用プログラム表記」が採用されており,特定のプログラミング言語の仕様を問うような問題ではなく,あくまでもプログラミングの概念理解が問われる形となっていた.

本稿では,この大問3とプログラミング能力検定(CFRP)のレベルとの関係および,高等学校での指導との関係を踏まえて今回の共通テストの難易度および今後の出題傾向について考察していく.

2.プログラミング能力検定の概要

「プログラミング能力検定」はプログラミングの基礎知識を客観的かつ詳細に測ることができるテストである.民間/公教育を問わず,教育の現場では「プログラミング教育」という一律の評価が難しい領域において,学習者のモチベーションや,目標設定に課題を持っている.プログラミング能力検定はこういった背景を踏まえ,学習内容によらずプログラミングの基礎知識を同じ基準で評価するための尺度として設計されており,すでに多くの教育機関でプログラミング学習の成果を可視化するツールとして採用されているほか,公益社団法人全国工業高等学校長協会が運営する「ジュニアマイスター顕彰制度」や複数の大学の総合型選抜の加点対象にもなっている.

プログラミング能力検定は表1に示すようなCFRP(Common Framework of Reference for Programming Skills)という独自のプログラミングスキル標準に基づいて構成されている.このCFRPを用いることで,プログラミング言語によらず,一律の基準でプログラミングの学習・指導・評価を行うことができる.

表1 CFRPの3つの段階と6つのレベル
表1 CFRPの3つの段階と6つのレベル

実際にこのCFRPは多くの学校,プログラミングスクールでも指標として用いられており,教員だけでなく保護者等,大人が子どもたちのプログラミング能力を確認する上でも有効とされている.CFRPでは表1のように6つのレベルでプログラミングの習熟度を定義しており,さらに60以上の概念にプログラミングの基礎知識を細分化している.表2はCFRPよりレベル1のみを抜粋したものである.

表2 CFRPレベル1で定義するプログラミング概念詳細(抜粋)
表2 CFRPレベル1で定義するプログラミング概念詳細(抜粋)

プログラミング能力検定はビジュアル言語,JavaScript,Python,Javaの4種類の言語から選択して受験が可能であり,受験レベルはCFRPに準拠し,ビジュアル言語が1から4(4が最高レベル),テキスト言語JavaScript・Python・Javaそれぞれでは1から6(6が最高レベル)で構成される.

出題される問題は,正しいプログラムまたは出力を選択肢から選ぶ「選択式問題」と,提示された使用,あるいは動きに応じてプログラムを組む「実装式問題」で構成され,問題数は20~30問で,合格ラインは正答率60%以上となっている.各問題に配点の大小は設けず,「受験者が正答した問題の数/出題された問題数」をその受験者の正答率としている.

またプログラミング能力検定は受験後には図1のような詳細な分析結果を伴う「成績表」を発行している.

図1 プログラミング能力検定の成績表
図1 プログラミング能力検定の成績表

3.共通テストの難易度

3.1 CFRPを基準とした分析

表3にCFRP(一部抜粋)と,2021年のサンプル問題,2022年の試作問題,2025年の本試験の関係を示す.いずれもプログラミング領域の問題で使用されているプログラミングの概念ベースの比較である.

表3 CFRPと大学入学共通テストの関係
表3 CFRPと大学入学共通テストの関係

この分析から,2022年の試作問題では一時的にプログラミング領域の問題で使用されるプログラミング概念の難易度がCFRPレベル5相当に上がったものの,2025年の本試験ではCFRPレベル2相当に概念の難易度が下がったことが分かる.

また2025年に大学入学共通テストを受験した世代の全国の学校におけるプログラミング能力検定の受験結果を表4に示す.レベル1~2正答率に対して,レベル3以降の正答率が大きく下がっており,この結果から,当該世代の高校生のプログラミング能力は1~2相当であるといえる.

表4 共通テスト受験生のプロ検受験結果
受験レベル(Python)
1 2 3 4 5 6
受験者数 4,598 3,086 1,016 591 733 314
正答率 69.6% 68.2% 48.3% 45.1% 57.4% 39.1%

一方,筆者の論文「高等学校における情報Iの必修化とプログラミングの評価[1]」で協力いただいた8校の高等学校のプログラミング能力検定の受験レベルはCFRPレベル2~3程度であることが分かっており,全国の平均よりはやや高いものの,これはご協力いただいた高校でのプログラミングの指導が比較的進んでいるためと思われる.一方,情報Iの教科書のプログラミング領域に記載されている内容や,大学入試センターから公開されている「令和7年度大学入学共通テスト 試作問題『情報』の概要」に記載された「共通テスト用プログラム表記の例示」によると,本来情報Iで学ぶべきプログラミングの概念はCFRPレベル5相当であることも分かっている(表5).

表5 「情報I」教科書と高校現場の実態
表5 「情報I」教科書と高校現場の実態

このことから,2025年1月に実施された第1回目の大学入学共通テスト「情報I」は受験生の実態を踏まえた難易度となっていたと考えられる.

3.2 高校現場の指導と受験結果

次に高等学校における大学入学共通テストに向けたプログラミングの指導と入試を終えての考察について,現場の教員の視点から述べる.

3.2.1 三重県の公立高等学校

情報Iにおけるプログラミング実習では,ゲームや図形描画など具体的な体験を伴うことを意識して取り入れており,モジュールを利用しやすいクラウド学習環境を見つけられなかったため,教室でのローカルPC環境を中心に実施していた.また前段階として,Excelの実習を取り入れ,関数の使用を通じて命令文に対する基礎を学ぶことや,アルゴロジック(ゲーム感覚でプログラミングを体験するための「課題解決型」ゲームソフト)を使って各自がゲーム的な課題に取り組む中で,基礎的なアルゴリズムの構造について学べるようにした.

実習期間の序盤では,教員がPythonで実装したゲームを体験し,そのソースコードを読みとくことも行った.このことは,今後の取り組みの具体的なイメージを持つことにつながり,後に描画ツールで実際に対象を動かす実習では,生徒の反応も良く効果的であった.

大学入学共通テストに向けてはまずは情報Iの内容への理解を深めることが欠かせないため,情報社会の現状,権利や法規に関することもしっかり学ばせるようにした.とりわけ生成AIが身近なツールとして存在する中で機械学習の性質などを紐解いていくためにも,プログラミングを学んでいくことには重要な意義がある.短期間で一挙に基礎的なコーディングを学んでいく中,実習で取り組んだ表現やアルゴリズムを忘れないため,反復学習としてプログラミング能力検定を活用した.

入試本番においては,コードを書く力よりも読む力の方が重要になる.その場でプログラムを実行して応答を確認することができないため,インデントなどの些細なミスや,ネスト構造での制御中に配列がどのように書き換わっていくかなどを思考の中で気付ける力が問われる.

プログラミング能力検定はプログラミングの実習の進度に合わせて適切なレベルで受験した(表6).最終的に授業内でPythonを使った簡単なゲーム作りまで行ったが,あわせてプログラミング能力検定で実力を測れることは生徒からも好評であった.

表6 三重県の公立高等学校のプロ検実施結果の一例
受験時の学年 受験レベル 時期 人数 平均正答率
2年生 Pythonレベル1 2023年9月 147 80.9%
2年生 Pythonレベル2 2023年9月 100 68.2%

共通テストの受験を終えた生徒からは,

  • 初めての「情報I」の入試であったため,どの程度の学習時間を割けばよいか迷った
  • アルゴリズムに関する問題は,プログラミング能力検定など,実習面での経験が役に立ったと感じた.紙の上では配列などの変化がよく分からない
  • 実技面で熱心に取り組んだことで紙面上の問題を解くスピードに違いがあった
 などの所感があった.プログラミング能力検定の問題内容は,基礎力を定着させるためにも非常に有用であったと思う.本校では実施スケジュールの都合から,レベル1とレベル2しか導入できなかったが,より上位のレベルに取り組むことで間違いなく共通テストのような問題に取り組む力も養えることが期待できる.

3.2.2 神奈川県の公立高等学校

1年生から予習→授業→実践→復習の習慣をつけ,春休みにプログラミング能力検定レベル1を実施した後,2年生で情報Iを履修.

情報Iでは11月頃から約10時間のプログラミング実習を行う.プログラミング実習では,身近な人の動きをフローチャートで表現することで予測能力を高め,Pythonを用いて課題を解決する能力を身につける.最後には簡単なゲームを企画・制作する課題を設け,予測したものを実現できるかを試した.

大学入学共通テストに向けては副教材や夏期・冬期講習を活用して共通テスト対策を行った.情報Iの共通テストが初回ということもあり,対策用の教材が見つからなかったため,さまざまな参考書を参考にし,独自に教材となるものを作成し,生徒に対策講座を開講した.また情報に特化した模試を利用して対策を行った.

プログラミング能力検定を1年生の春休み,2年生での情報I履修前にPythonレベル1を受験した(表7).情報Iの予習としてのプログラミング能力検定の実施により,情報Iに興味を持った生徒が一定数いた.

表7 神奈川県の公立高等学校のプロ検実施結果の一例
受験時の学年 受験レベル 時期 人数 平均正答率
1年生 Pythonレベル1 2023年3月 428 61.4%

大学入学共通テストの受験後「これなら勉強しなくてもいい」と感じた生徒が多かったことに危機感を覚えた.2025年度から受験で情報Iを活用する大学が増加している中で,簡単と思わせるのではなく,「分かる,理解する,活用できる」ための授業を展開する必要があると感じた.

プログラミングの勉強について,3年生になってからの復習では遅すぎると感じた.本校のある生徒は,「授業内で理解し,実習や試験や検定で技能の定着を実感できれば,事前の対策がなくても自然と模試や入試問題を解くことができた」と言っていた.ほとんどの学校では1学年で「情報I」を行い,1年の間を空けてから3年生で再び学ぶ.しかし,その間に何もしないのではなく,プログラミング能力検定や模試を利用し,復習を行う必要があると感じた.

3.2.3 広島県の公立高等学校

情報Iを2年生で履修しており,プログラミングの指導にあたっては,まず夏休み前に「プログラミングとは何か」「アルゴリズムとは何か」といった基礎的な学習に3時間を充てた.次に,分岐や反復,関数といった基本構文の使い方について4時間かけて指導を行った.その後,応用として,ファイルの入出力,シミュレーションでの活用方法,探索・整列アルゴリズムの実装などを,5時間の授業を通じて扱った.

また3年生を対象に,1単位の学校設定科目として情報科の授業を設置している.この授業では,2年次に学習した「情報I」の内容を発展的に扱いながら,大学入学共通テストも意識した指導も行っている.

プログラミング能力検定は,生徒の理解度を確認することを目的として,全員受検による実施を2回行った(表8).

表8 広島県の公立高等学校のプロ検実施結果の一例
受験時の学年 受験レベル 時期 人数 平均正答率
2年生 Pythonレベル2 2023年9月 229 86.1%
2年生 Pythonレベル3 2023年11月 217 59.7%

1回目は基礎学習を終えたタイミングでレベル2を,2回目はプログラミング単元をすべて終えた後にレベル3を実施した.1回目のレベル2では,平均正答率が86.1%であり,基本的なif文やfor文,リストの使い方は習得できていると推測できる.一方,2回目のレベル3では,平均正答率が59.7%と大きく下がった.この結果から,本校における課題はレベル3の内容にあると捉え,分析を行った.

具体的には,「関数」に関する理解が課題である.実際に生徒にも確認したところ,関数に対する苦手意識を持つ生徒が多く,特に引数や戻り値の仕組みの理解に難しさを感じているという声が複数あった.このような現状を踏まえ,関数の理解を深めるために,当初の計画よりも多くの時間を割いて丁寧に扱い,演習問題を増やすなどの工夫を行った.

初年度の大学入学共通テストを終えて感じたことは,やはり全体的に内容が比較的平易であったという点である.そのことは,本校の生徒にとっても受験において安心材料となり,結果的に良い方向に働いたと捉えることができる.

プログラミングに関しては,特に課題とされていた「関数」分野について,授業を通してある程度克服できたという実感がある.共通テスト本番では今年度,関数が出題されなかったものの,生徒自身が「関数を理解できた」「関数を使えるようになった」という手応えを得たことは,不安の払拭につながる大きな成果であったと考える.このことは,プログラミング全般に対する自信の醸成にも寄与しており,たとえ試験に出題されなかったとしても,基礎的な力を身につけることの重要性を改めて実感した.今後も引き続き,プログラミングにおける「関数」分野の理解を重視し,学習の定着を図っていきたい.また,プログラミング能力検定においてはレベル3の合格を1つの目安としながら,生徒一人ひとりが自信を持ってプログラミングに取り組めるよう,継続的な支援と工夫を行っていく所存である.

3.3 今後の共通テストの予測

第1回の大学入学共通テストは総じて「簡単であった」という評価となっている.これは前述のとおり情報Iの必修化後初めての入試であったことから,高校現場の実態も踏まえて難易度が調整されていたものと考える.

今後は高校現場での指導レベル向上や教材の進化,また小中学校でプログラミングを学習した世代が高校に入学してくることから,難易度が上がっていくのではないか.その際の難易度のゴールとして想定されるのは,教科書や共通テスト用プログラミング表記が示すCFRPレベル5である.

ただし,プログラミング教育には地域差,学校差があり,全体のレベル向上には一定の年数がかかることも想像に難くなく,数年をかけて難易度が調整されていくものと思われる.

4.今後の実践へのフィードバック

前述の各高等学校の現状と受験を終えての考察を踏まえると,大学入学共通テストに臨むにあたってはやはりプログラミングについては受験直前ではなく極力1年生の早い段階から取り組んでおくことが望ましいと言える.さらに2年生で情報Iを実施しない学校においてはその間にも復習を兼ねて検定などの定着度を客観的に測ることができるツールを使い,3年生まで繋いでいく必要があるだろう.

また現状の紙を使った入試においてはコードをその場で実行することができないため,頭の中でプログラムの実行状況をトレースできる必要がある.また実装の前の要件定義の力も問われる.そのためには適当にコードを書いて実行できればよいわけではなく,自分が書いたコードが要件を満たしているのか,またなぜそのような挙動をするのかを正確に把握できるまで知識の理解と実践による経験を深める必要がある.そのためには今回の高等学校の実践のように「ゲーム作り」などの生徒が興味を持ちやすい題材を選ぶこともよいだろう.

さらに今後大学入学共通テスト「情報I」の難易度が徐々に上がっていくことを踏まえると,段階的にプログラミング能力検定(CFRP)のレベル4~5相当まで理解度を引き上げる必要があるだろう.特に今回の高等学校での実践にもあるとおり,「関数」の概念はプログラミングにおいて重要な概念である一方で,生徒にとっては理解が難しく,苦手意識に繋がりやすい.「関数」の概念を含むプログラミング能力検定レベル3を受験することで学年やクラス単位,あるいは個人ごとの関数の理解度を可視化することができるため,ぜひ活用いただきたい.

プログラミングは本来,試行・分析・改善を繰り返しながら行うものであり,プログラミングに触れること自体が主体的に学ぶ姿勢を育てることにもなる.今回実践を提供いただいた高等学校のように,まずは生徒にプログラミングに触れてもらい,プログラミング能力検定のような客観的な評価も利用しながらプログラミングだけでなく情報教科そのものへの苦手意識を払しょくしていくと大学入学共通テストの対策も楽になるだろう.

最後に,主体的に学ぶ姿勢は他教科の学習や,社会に出た際に成長し続ける人材になる上でも有益である.プログラミングを単に「プログラムが書けるようになる力」としてではなく,プログラミングが本来持つ特徴を踏まえて良き教材として捉えていただけると幸いである.

本稿の実践提供にご協力いただいた三重県の公立高等学校,神奈川県の公立高等学校,広島県の公立高等学校の先生方に心より感謝いたします.

参考文献
  • 1)飯坂正樹 他:高等学校における情報Iの必修化とプログラミングの評価,情報処理,Vol.65, No.11, pp.d130-d144 (Nov. 2024).
飯坂正樹

飯坂正樹(正会員)
iisaka@programming-ri.com

プログラミング能力検定協会代表,本会ジュニア会員サポーター,国立大学法人長岡技術科学大学客員准教授.国内外でプログラミング教育の普及に従事し,大学ではプログラミングの講義も行う.

投稿受付:2025年6月16日
採録決定:2025年6月28日
編集担当:長坂健治(キンドリルジャパン(株))

会員登録・お問い合わせはこちら

会員種別ごとに入会方法やサービスが異なりますので、該当する会員項目を参照してください。