基本情報技術者試験 科目Bの解き方ガイド — トレースのコツを図解で
科目Bは「知識を覚える試験」ではなく「コードを読んで、頭の中で実行する試験」です。この記事では、科目Bの出題構成、多くの人がつまずく理由、そして合否を分けるトレース(机上実行)の具体的なやり方を、図解つきで解説します。
科目Bはどんな試験か
基本情報技術者試験は「科目A」と「科目B」の2部構成です。科目Aが幅広い知識を問う四択なのに対し、科目Bは20問・100分で、その8割(16問)がアルゴリズムとプログラミング(擬似言語)、残り2割(4問)が情報セキュリティです。合格ラインは1000点満点中600点。つまり、擬似言語のコードを読めるかどうかが合否をほぼ決めます。
なぜ科目Bで落ちるのか
科目Bでつまずく人の原因は、ほぼ次の3つに集約されます。
① コードを「読んだ気」になって、実行していない … 眺めるだけでは選択肢は絞れません。科目Bの問題は「実行した結果どうなるか」を聞いてくるからです。
② 変数の中身を頭の中だけで追って、途中で迷子になる … ループが2重になった瞬間に、頭の中の値は崩壊します。紙に書かない人ほど落ちます。
③ 時間切れ … 1問5分ペースが必要なのに、トレースに慣れていないと1問に15分かかってしまう。
3つとも、原因は同じです。「トレース(机上実行)」の練習不足。逆に言えば、トレースさえ体に入れれば科目Bは安定します。
トレースとは — 自分がコンピュータになる
トレースとは、プログラムを1行ずつ、自分の手で実行して、変数の値の変化を記録することです。ポイントはただ1つ、「変数表」を書くこと。次の擬似言語を例にやってみます。
トレースの手順(4ステップ)
手順1: 変数を全部拾う。 コードを読む前に、宣言されている変数(上の例なら sum と i)を書き出し、表の列にします。
手順2: 1行ずつ「実行」する。 代入(←)が出たら必ず表を更新します。「sum ← sum + i」は「今の sum に 今の i を足して、sum を上書き」です。右辺を先に計算するのがルールです。
手順3: ループは1周ずつ行を増やす。 2重ループなら「外側の i が1のとき、内側の j が1,2,3…」と、内側を回し切ってから外側を進めます。
手順4: 終了条件を最後まで確認する。 「i ≦ n」なのか「i < n」なのかで、ループ回数が1回ずれます(オフバイワンエラー)。科目Bはこの「1回ずれ」を狙った選択肢を必ず混ぜてきます。
本番での時間配分
100分で20問。おすすめの配分は「セキュリティ4問を先に15分で片づけ、残り85分をアルゴリズム16問に充てる」です。セキュリティは読解中心で得点しやすく、先に確保すると精神的に安定します。アルゴリズムは1問約5分。3分考えて手が動かない問題は印を付けて飛ばす——全問に触ることが、部分点のない選択式では最も期待値の高い戦い方です。
頻出テーマと対策の優先順位
擬似言語の題材には流れがあります。優先して慣れておきたいのは次の順です。
① 配列の操作(合計・最大値・入れ替え)… ほぼ毎回出る基本形。
② 探索(線形探索・二分探索の lo/mid/hi の動き)… 二分探索の境界更新はトレース問題の定番。
③ ソート(バブル・選択・挿入の比較/交換回数)… 「何回比較したか」を数えさせる問題が多い。
④ 文字列処理・スタック/キュー・再帰 … 慣れで差がつく応用枠。
いずれも「動きを一度、目で見たことがあるか」で読解速度が激変します。当サイトのソートアルゴリズム可視化と探索アルゴリズム可視化で、比較・交換の様子をアニメーションで確認しておくと、コードが「動く絵」として読めるようになります。
✍️ トレースを実際に練習するなら:当サイトの擬似言語ステッパーが使えます。科目B風の擬似言語を1行ずつ実行し、変数の値の変化がそのまま画面に表示されます。この記事の「変数表」を自動で見せてくれるツールです。まず付属のサンプル(合計・最大値・線形探索・バブルソート)を1ステップずつ進めて、自分の予想と合うか確かめてみてください。
勉強の進め方(3段階)
段階1(〜2週間): 文法とトレースの型を作る。 擬似言語の記法(←、if/endif、for/endfor、配列の添字が1始まり)に慣れ、簡単なコードで変数表を書く練習をします。
段階2(〜1か月): 定番アルゴリズムを「動き」で覚える。 探索・ソート・配列操作を、可視化ツールとトレースの両方から固めます。
段階3(試験前): 公式サンプル問題を時間を計って解く。 IPA公開のサンプル問題・公開問題を、本番と同じ1問5分ペースで。飛ばす判断の練習もここでやります。
よくある質問
Q. プログラミング経験ゼロでも合格できますか?
A. できます。科目Bの擬似言語は特定の言語の経験を前提にしていません。ただし「読んだことがある」だけでは足りず、トレースの練習量がそのまま得点になります。経験者との差は、練習で埋まる種類の差です。
Q. 過去問はどれをやればいい?
A. 科目B形式になったのは2023年4月以降なので、まずはIPA公式のサンプル問題・公開問題が最優先です。旧試験の「午後問題」のアルゴリズム分野も、トレース練習の素材としては有効です。
Q. 擬似言語の記法を忘れそうで不安です。
A. 覚える記法は実は少なく、「← は代入」「配列の添字は1始まり」「日と曜日のような細かい罠はない」の3点をまず押さえれば読み始められます。記法の一覧は擬似言語ステッパーのページにまとめてあります。
まとめ
科目Bは、①8割が擬似言語、②合否を分けるのはトレース力、③トレースは「変数表を書く」だけで安定する——この3点に尽きます。読むだけの勉強から、手を動かして実行する勉強へ。それが最短ルートです。