基本情報の過去問は何年分・何割解けばいい?周回のしかたを解説

公開日: 2026-09-05

過去問は何年分やれば足りるんだろう。

参考書を一通り読み終えて、次に過去問へ進もうとしたとき、この疑問が出てきませんでしたか?

5年分でいいのか、10年分やるべきなのか。ネットを見ても人によって答えが違い、余計に迷ってしまいます。

先に結論を書いておきます。この問いは、科目Aと科目Bで答えの形そのものが変わります。

私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。現場で新しい技術を覚えるときも、資料を何冊読んだかより、手を動かして何を再現できるようになったかで力が決まります。

過去問も同じです。この記事では、年数という数え方が通じる場面と通じない場面を分けたうえで、実際の周回のしかたまで順番に説明します。

結論:科目Aは年数ではなく正答率、科目Bは年数で数えられない

まず全体像から確認します。基本情報技術者試験は科目Aと科目Bに分かれていて、それぞれ1000点満点のうち600点以上を取ると合格になります。

この2つは、過去問との相性がまるで違います。

科目Aは60問を90分で解く択一式で、出題の幅は広いものの聞かれ方が安定しています。だから過去問演習がそのまま得点に変わります。

一方の科目Bは20問を100分で解きます。出題されるのはアルゴリズムとプログラミング、そして情報セキュリティの2分野だけです。

分野が少ないのに、こちらのほうが苦戦する人が多い。理由は、科目Bで問われているのが知識ではなく、その場で初めて見たコードを読み解く作業だからです。

試験そのものの全体像をまだ押さえていない場合は、先にこちらを読むと話が入りやすくなります。

【関連記事】基本情報技術者試験とは?試験内容・難易度・勉強法を初心者向けに解説

科目Aは何年分ではなく、何割取れるかで判断する

科目Aについて、何年分という問い方はあまり役に立ちません。同じ論点が形を変えて繰り返し出るので、年数を増やすより同じ問題の理解を深めるほうが効きます。

判断の基準は、初見の問題で何割取れるかに置きます。手元の過去問で8割前後が安定して取れるようになったら、量を増やすより苦手分野に戻るほうが得点は伸びます。

逆に4割や5割で止まっているなら、年数を足しても数字は動きません。その状態は演習不足ではなく、そもそも知識が入っていない状態だからです。

科目Bは「何年分」という数え方が成り立たない

科目Bには、そもそも周回できるほどの年数分の問題がありません。ここが多くの人のつまずきどころです。

現行の制度になってからの公開問題は、年度ごとにごく一部が出るだけで、旧制度の午後問題のように1回分がまるごと手に入るわけではないのです。

だから科目Bでは、何年分やったかではなく、1問をどこまで追い切れたかで進み具合を測ります。

過去問はどこまで公開されているのか

年数の話を進める前に、そもそも何が手に入るのかを確かめておきます。ここを知らないまま10年分という目標を立てると、途中で必ず行き詰まります。

基本情報技術者試験は2023年4月に大きく作り替えられ、午前・午後という区分が科目A・科目Bに変わりました。この境目をまたぐと、問題の形式そのものが変わります。

公開状況を時期ごとに整理すると、次のようになります。

時期 試験の形式 問題の公開状況
令和元年度(2019年度)以前 午前・午後 過去問題がまとめて公開されている
令和2年度〜令和4年度 午前・午後(CBTへ移行) 問題は公開されていない
令和5年度(2023年度)以降 科目A・科目B 各年度で出題した問題の一部が公開されている

表の一段目が、いわゆる何年分と数えられる資料です。ただしこれは旧制度の問題なので、科目Bの形式とはそのまま重なりません。

二段目の空白があるせいで、過去問の年数は連続していません。ここを知らずに探し続けると、見つからない問題を探す時間だけが増えます。

三段目が現行制度の問題ですが、1年度あたりの公開数は限られています。加えて制度変更前に公開されたサンプル問題があり、これも現行形式の貴重な材料になります。

つまり現行形式で解ける問題は、公開問題とサンプル問題を全部合わせても数十問という規模です。科目Aの過去問と同じ感覚で周回しようとすると、すぐに底が見えてしまいます。

科目Bの公開問題を具体的にどこで手に入れ、どう使うかについては、専用の記事にまとめてあります。

【関連記事】基本情報 科目Bの過去問はどこで解ける?公開問題の使い方と勉強法

科目Aは何割解ければ安心か

ここからは具体的な数字の話に入ります。ただし、この数字は合格基準そのものではなく、演習中の目安として読んでください。

合格に必要なのは1000点満点で600点以上ですが、本番の緊張や初見問題の混ざり具合を考えると、演習で6割ちょうどでは心もとないのが正直なところです。

演習時の正答率を、次の3段階で見ると判断しやすくなります。

演習での正答率 今いる段階 次にやること
5割未満 知識がまだ入っていない 過去問を止めて参考書に戻る
5割〜7割 穴がはっきりしてきた段階 間違えた分野だけを集中的に回す
8割前後で安定 科目Aは仕上がりに近い 演習量を減らし科目Bへ時間を移す

いちばん多いのが真ん中の段階で止まるパターンです。ここで年数を足したくなるのですが、必要なのは新しい年度ではなく、間違えた問題の理由を潰す作業です。

そして8割で安定したら、科目Aの演習はいったん減らして構いません。空いた時間はすべて科目Bへ回すほうが、合格までの距離は縮まります。

過去問サイトだけで進める作戦がどこまで通用するかは、別の記事で詳しく切り分けています。

【関連記事】基本情報は過去問道場だけで合格できる?科目Aと科目Bで変わる答え

過去問の周回のしかた

何年分という目標を、周回という考え方に置き換えます。同じ問題でも、周回ごとに見るところを変えるのがコツです。

やみくもに3周するのではなく、周ごとに目的を切り替えてください。

周回 目的 具体的にやること
1周目 現在地を知る 時間を計らず全問解き、正解でも自信がなければ印を付ける
2周目 穴を埋める 印を付けた問題だけを解き、なぜその選択肢かを言葉で説明する
3周目 本番に合わせる 時間を計って通しで解き、時間切れの場所を記録する

1周目でやってはいけないのが、答え合わせだけして次へ進むことです。正解した問題でも、勘で当たったものは次に間違えます。

2周目で大事なのは、選んだ理由を口に出して言えるかどうかです。説明できない正解は、まだ自分のものになっていません。

3周目で初めて時間を計ります。ここで時間が足りないと分かったら、それは知識ではなく解く順番の問題です。

間違えた問題の記録は1行で十分

ノートを作り込む必要はありません。私も現場で不具合の原因を残すときは、長い報告書より1行のメモのほうが後で役に立ちました。

問題番号と、間違えた理由を一言だけ書けば十分です。用語を知らなかったのか、計算を間違えたのか、読み違えたのかが分かれば次に活かせます。

この記録が10行たまると、自分の弱点が偏っているのが見えてきます。そこだけを潰せば、正答率は年数を足すよりずっと速く上がります。

科目Bは周回ではなく追い方を鍛える

科目Bでは、周回という発想そのものを切り替えます。同じ問題を5回解いても、答えの記号を思い出しているだけなら読み解く力は動きません。

かわりに鍛えるのは、変数の値を最後まで追い切る力です。実際に短いコードで確かめてみます。

次は配列の中から最大値を探す処理です。試験でよく見る形に合わせて書いています。

○整数型: findMax(整数型の配列: data)
  整数型: max ← data[1]
  整数型: i
  for (i を 2 から dataの要素数 まで 1 ずつ増やす)
    if (data[i] > max)
      max ← data[i]
    endif
  endfor
  return max

このコードを読むときに、いきなり1行目から目で追ってはいけません。先に見るのは、maxという変数が何を覚えている入れ物なのかという点です。

maxは、今までに見た中でいちばん大きい値を持ち続ける役割を持っています。この役割さえ分かれば、あとは表で追うだけです。

data が {3, 9, 5} だった場合、値の動きは次のようになります。

i data[i] 比較の結果 max
開始前 3
2 9 9 > 3 なので更新 9
3 5 5 > 9 ではないので据え置き 9

この表を書けたなら、同じ形の問題は初見でも解けます。逆に表が書けないまま答えを覚えても、次に変数名が変わった瞬間に手が止まります。

トレース表の書き方そのものに自信がない場合は、こちらで手順を確認してみてください。

【関連記事】擬似言語のトレース表の書き方|科目Bで変数の値を追う手順を解説

問題が足りないときは自分で作る

科目Bは材料が少ないので、公開問題を解き終わると手が止まります。そこで役に立つのが、既存のコードを少しだけ書き換える方法です。

たとえば先ほどのコードの不等号を逆にすれば、最小値を探す処理になります。開始位置を1ではなく2にしたら答えがどう変わるかを考えるのも良い練習です。

自分で条件を変えて結果を予想し、実際に追って確かめる。この往復が、初見のコードに強くなる一番の近道です。

Giji Academy の擬似言語シミュレーターを使うと、書き換えたコードを実際に動かして答え合わせができます。手元で予想した値と画面の値がずれた瞬間が、いちばん学べる場面です。

まずは擬似言語シミュレーターで、短いコードを1本動かしてみてください。

科目Bがそもそもどういう試験なのかを押さえ直したい場合は、こちらの記事が土台になります。

【関連記事】基本情報技術者試験の科目Bとは?擬似言語・アルゴリズム対策を初心者向けに解説

過去問の使い方でよくある失敗

年数の目標を立てた人ほど、同じところでつまずきます。私が学習の相談を受けてきた中でも、この3つはほぼ毎回出てきました。

どれも真面目に取り組んでいる人ほど陥りやすいものです。

よくある失敗 何が起きるか 直し方
年数を目標にする 解いた量に満足して理解が浅いまま進む 目標を年数から正答率に置き換える
解説を読んで納得して終わる 次に同じ問題が出ても手が動かない 解説を閉じて自分の言葉で再現する
科目Aの演習を最後まで続ける 科目Bに割く時間が残らない 8割で安定したら科目Bへ移す

いちばん多いのが真ん中です。解説を読んでいる最中は分かった気になりますが、それは著者の理解を借りているだけの状態です。

対策はかんたんで、解説を閉じてから、もう一度自分で解き直します。ここで手が止まったら、まだ理解できていないと分かります。

科目Aの演習は分野を混ぜて回す

もう一つ、演習のやり方で差が出るのが問題の並べ方です。分野ごとにまとめて解くと、直前に読んだ知識が頭に残ったまま解けてしまいます。

本番は分野がばらばらに出てきます。だから2周目以降は、あえて分野を混ぜて解いてください。

実務でも、覚えたばかりのやり方はその日は使えても、1週間後に別の場面で出てくると思い出せないことがあります。混ぜて解く演習は、その差を埋める練習になります。

過去問を始める時期を決めておく

参考書を完璧にしてから過去問へ、と考えていると、いつまでも始められません。7割くらい読んだ時点で過去問へ移るほうが結果的に速く進みます。

分からない問題に当たったら、そのつど参考書へ戻ればいいのです。何が分からないかが分かってから読む参考書は、最初に読んだときよりずっと頭に入ります。

まとめ

過去問を何年分やればいいかという問いには、科目ごとに別の答えを用意する必要がありました。最後に要点を振り返ります。

科目Aは年数ではなく正答率で判断します。初見の問題で8割前後が安定したら、それ以上年数を足すより科目Bへ時間を移すほうが効きます。

科目Bは、そもそも年数で数えられるほど問題が公開されていません。かわりに1問をトレース表で追い切り、条件を変えた類題を自分で作って解くのが実質的な周回になります。

過去問の公開状況にも空白の期間があり、探しても見つからない年度があると知っておくだけで、無駄な時間を減らせます。

何年分という数字を追いかけるのをやめると、勉強は一気に具体的になります。今日は1問だけでも、変数の動きを最後まで追い切ってみてください。それが合格へのいちばん確かな一歩です。

擬似言語の基礎から応用まで学べる
Giji Academy

Giji Academyでは、擬似言語の基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。
また、ブラウザ上で直接擬似言語コードを試すことができ、実践的なスキルを身につけることが可能です。

擬似言語の学習を始める

擬似言語の学習をここから始めよう。