基本情報 科目Bの過去問はどこで解ける?公開問題の使い方と勉強法
科目Bの過去問を解きたいのに、まとまった問題が見つからない。
検索窓に何度も言葉を打ち直して、手が止まっていませんか?
科目Aなら過去問がいくらでも出てくるのに、科目Bだけは同じようにはいきません。探し方が下手なのだろうかと不安になった人もいるはずです。
でも安心してください。見つからないのはあなたのせいではなく、科目Bがそういう仕組みの試験だからです。
私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。資料が少ない技術を扱うときほど、手元にある少数の実例を何度も読み返す方法に頼ってきました。
科目Bの対策もこれとよく似ています。数が少ないぶん、一つの問題から引き出す量を増やすのが正解になります。
この記事では、いま実際に手に入る問題は何なのか、それをどう使えば力が付くのかを順番に説明していきます。
科目Bの過去問が見つからないのには理由がある¶
まずは、なぜ見つからないのかをはっきりさせておきましょう。ここを誤解したまま探し続けると、時間だけが減っていきます。
結論から言うと、科目Bの本試験問題は原則として公表されません。試験の実施方式が変わったことが、そのまま理由になっています。
通年で実施しているから問題を出せない¶
基本情報技術者試験は、決まった日に一斉に受ける形ではなくなりました。会場で画面に向かって解くCBT方式で、通年で実施されています。
受験する日が人によって違う、という点が大事です。もし問題をそのまま公表してしまうと、後から受ける人が答えを知った状態で臨めることになってしまいます。
そのため、受けた本人にも問題は配られません。持ち帰れる問題冊子が存在しないので、受験者の手元から過去問が出回ることもないわけです。
科目Aの過去問がたくさん見つかるのは、制度が変わる前の午前試験が長年公表されてきたからです。同じ感覚で科目Bを探すと、どうしても空振りしてしまいます。
それでも一部は公表されている¶
とはいえ、まったく手掛かりがないわけではありません。IPAは受験者向けに、出題の形式や難易度が分かる問題を公表しています。
公表されているのは、大きく分けて二種類です。制度改定にあわせて出されたサンプル問題と、年度ごとに出題内容の一部を示す公開問題があります。
数は決して多くありません。それでも、本番と同じ作りの問題であることには大きな価値があります。
問題を探す旅はここで終わりにして、手に入るものを深く使う方向へ切り替えましょう。
いま手に入る問題の種類を整理する¶
何がどこまで使えるのかを、先に整理しておきます。種類ごとに役割が違うので、混ぜて使うと効果が落ちてしまいます。
現在参照できるものを表にまとめました。いずれもIPAの公式サイトで公表されているものです。
| 種類 | 中身 | 使いどころ |
|---|---|---|
| 科目Bのサンプル問題 | 制度改定にあわせて公表された20問のセット | 最初に取り組む。分量が一番多い |
| 年度ごとの公開問題 | その年度に出題された問題の一部。科目Bは6問 | 本番の手触りを確かめる |
| 旧制度の午後試験問題 | 令和4年度以前の大問形式の問題 | 形式は違うが、読む練習に使える |
| 市販の問題集や演習サイト | 出題形式に合わせて作られた類題 | 数をこなす段階で足す |
順番としては、上から下へ進むのがおすすめです。サンプル問題で形式に慣れ、公開問題で本番を確かめ、足りない分を類題で埋めていきます。
公開問題は令和5年度から年度ごとに公表されていて、科目Bはそれぞれ6問ずつです。数年分あわせても20問に届かないので、一問一問を大切に扱ってください。
なお、記事や自作ノートに問題を引用するときは、出典を書き添える習慣を付けておくと安心です。出典:令和○年度 基本情報技術者試験 科目B 公開問題 問○、といった形で十分です。
少ない問題を3周して使い切る¶
ここからが本題です。問題数が限られているので、一度解いて終わりにするのはあまりにもったいない。
私が勧めているのは、同じ問題を3周する方法です。周ごとに目的を変えるのがコツで、ただ繰り返すのとはまったく別物になります。
3周それぞれのねらいを表にしました。目的を意識せずに繰り返すと、答えを覚えているだけの状態になってしまいます。
| 周 | やること | 確かめること |
|---|---|---|
| 1周目 | 時間を測らず、自力でトレースして解く | 自分の読み方でどこまで行けるか |
| 2周目 | 解説を閉じて、白紙から解き直す | 理解したつもりが本物かどうか |
| 3周目 | 時間を測って、本番の速さで解く | 手順が体に入っているか |
間隔は、1周目と2周目のあいだを数日空けるくらいがちょうどよいでしょう。忘れかけたころに解き直すほうが、記憶に残りやすくなります。
1周目は時間を気にせず紙に書く¶
最初の1周では、時間をまったく気にしないでください。急いで解いても、いまの自分の力が分かるだけです。
やることは一つで、変数の値を紙に書き出しながら追うことです。頭の中だけで追うと、必ずどこかで見失います。
たとえば次のような処理が出てきたとします。配列の中から条件に合う値を数える、科目Bでよく見る形です。
○整数型: 基準を超える件数(整数型の配列: 点数, 整数型: 基準)
整数型: 件数 ← 0
整数型: i
for (i を 1 から 点数の要素数 まで 1 ずつ増やす)
if (点数[i] > 基準)
件数 ← 件数 + 1
endif
endfor
return 件数
配列に70と85と60と90が入っていて、基準が70だったとしましょう。1行ずつ追うと次のようになります。
| 繰返し | i | 点数[i] | 条件の判定 | 件数 |
|---|---|---|---|---|
| 開始前 | ― | ― | ― | 0 |
| 1回目 | 1 | 70 | 偽 | 0 |
| 2回目 | 2 | 85 | 真 | 1 |
| 3回目 | 3 | 60 | 偽 | 1 |
| 4回目 | 4 | 90 | 真 | 2 |
1回目に注目してください。70は基準と同じ値なので、超えるという条件では偽になります。
この一点を見落とすと答えが3になってしまいます。科目Bの選択肢には、こうした境界の違いを狙ったものが必ず混ざっています。
表に書き出しておけば、後から自分の判断を確かめられます。頭の中だけで解いた問題は、間違えた場所すら分からないまま終わってしまいます。
トレース表の書き方そのものに自信がない人は、手順を決めて練習しておくと1周目の質が上がります。
【関連記事】擬似言語のトレース表の書き方|科目Bで変数の値を追う手順を解説
2周目は解説を閉じて再現する¶
1周目で解説を読むと、たいてい分かった気持ちになります。この気持ちが曲者です。
2周目でやるのは、解説を見ずに白紙から同じ問題を解くことです。答えを覚えていても構いません、大事なのは答えに至る道筋を自分で再現できるかどうかです。
途中で手が止まったら、そこがあなたの弱点です。記号の意味なのか、繰返しの回数なのか、条件の向きなのかを特定してください。
実務でも、他人のコードを読んだ翌日に説明を求められて詰まることがあります。読んだ記憶と、読める力はまったく別のものだからです。
3周目でようやく時間を測る¶
最後の周で初めて時間を意識します。ここまで来て測るからこそ、出た数字に意味があります。
読めていない状態で急いでも、速く間違えるだけになってしまいます。正確に、それから速く、という順番だけは崩さないでください。
時間内に解き終わらなかったときは、どこで止まったかを振り返りましょう。多くの場合、手が遅いのではなく読む順番が定まっていないだけです。
計測は1問ごとに区切って行うと、どの型の問題に時間を取られているかが見えてきます。集計は速いのに探索で崩れる、といった偏りが分かれば対策も絞れます。
3周終えた問題は、変数名や値を自分で書き換えて類題にしてしまうのもおすすめです。作る側に回ると、その処理の急所がよく見えてきます。
公開問題に手を出す前に確認したいこと¶
順番の話をもう少しだけさせてください。公開問題は数が少ないので、使うタイミングを間違えると惜しいことになります。
擬似言語がまだ読めない段階で解くと、解説を書き写すだけの時間になってしまいます。せっかくの本番相当の問題を、力が付く前に消費してしまうわけです。
目安として、記号の意味を見ずに答えられ、10行程度のコードならトレースで追い切れる。そこまで来てから公開問題を開くと、得られるものがぐっと増えます。
そこに至るまでの土台作りは、順番を決めて進めるのが近道です。何から手を付けるか迷っている人は、こちらで全体の流れを確認してみてください。
【関連記事】基本情報技術者試験 科目Bの勉強法|初心者が合格までにやることを順番に解説
科目Bという試験そのものの全体像から押さえたい場合は、親記事にあたるこちらから読むと迷いません。
【関連記事】基本情報技術者試験の科目Bとは?擬似言語・アルゴリズム対策を初心者向けに解説
旧制度の午後問題は使えるのか¶
よく聞かれる質問なので、ここで触れておきます。令和4年度以前の午後試験の問題は、いまも公表されています。
ただし形式はかなり違います。旧制度の午後試験は長い大問形式で、いまの科目Bは短い問題が並ぶ作りです。
だからといって役に立たないわけではありません。プログラムを読んで動きを追うという作業そのものは変わらないので、読む筋力を付ける教材としては十分使えます。
使うなら、時間配分の練習ではなく読解の練習に限定するのが良いでしょう。分量の感覚を旧制度に合わせてしまうと、本番でかえって戸惑います。
もう一つ気を付けたいのが、擬似言語の書き方が現行と少し違う点です。旧制度の記法をそのまま覚え込むより、処理の流れを追う練習台として割り切るほうが安全でしょう。
記法の違いが気になったときは、いまの書き方を早見表で確認し直してください。手元に一覧があるだけで、余計な迷いが消えます。
【関連記事】擬似言語の記号・記述形式一覧|試験前のチェック早見表
問題数の不足をどう埋めるか¶
公開問題を解き切ってしまったら、その先はどうすればいいのか。ここでつまずく人も少なくありません。
答えを先に言うと、新しい問題を探すより、手元の処理を自分でいじるほうが効きます。科目Bで問われるのは知識ではなく読む力なので、素材はいくらでも作れます。
具体的な作り替え方を表にまとめました。どれも紙とペンだけでできます。
| 作り替え方 | 具体例 | 鍛えられる力 |
|---|---|---|
| 条件を反転させる | 超えるを以上に変える | 境界の見極め |
| 初期値を変える | 件数の初期値を1にしてみる | 初期化の意味の理解 |
| 繰返しの範囲を変える | 2から要素数−1までにする | 添字と回数の対応 |
| 空の入力を渡す | 要素数0の配列を渡す | 例外的な場合への注意 |
さきほどの件数を数えるコードで、条件を以上に変えてみてください。基準と同じ70が数えられるようになり、答えは3に変わります。
一文字変えるだけで答えが動く感覚が身に付くと、選択肢の見分けが速くなります。試験で狙われるのは、まさにこの一文字なのです。
紙で確かめたあとは、実際に動かして答え合わせをすると理解が定着します。Giji Academy の擬似言語シミュレーターなら、コードを1行ずつ進めながら変数の値が変わる瞬間を目で追えます。
自分のトレースと画面の値がずれた場所こそ、次に埋めるべき穴です。問題を探し回るより、この確認を1回増やすほうが確実に伸びます。
空欄補充の形式に慣れておきたい人は、選択肢の絞り方を扱ったこちらもあわせてどうぞ。
【関連記事】基本情報技術者試験の科目Bの空欄補充問題の解き方を解説|擬似言語で見る判断ポイント
まとめ¶
最後に、この記事の要点を振り返ります。
科目Bの過去問が見つからないのは、通年で実施しているために本試験の問題が公表されないからでした。探し続けても状況は変わらないので、手に入るものを深く使う方向へ切り替えましょう。
いま使えるのは、サンプル問題と年度ごとの公開問題、そして形式は違うものの旧制度の午後問題です。数は限られていますが、本番と同じ作りの問題には代えがたい価値があります。
使い方は、1問を3周することです。時間を測らず紙に書き、解説を閉じて再現し、最後に時間を測る。この順番を守るだけで、1問から得られるものが何倍にもなります。
解き切ってしまったら、条件や初期値を自分で変えて類題を作ってください。作る側に回ったとき、その処理を本当に理解しているかどうかが分かります。
問題が少ないことは、実はそれほど不利ではありません。今日はまず、手元にある1問をもう一度、白紙から解き直すところから始めてみましょう。