基本情報技術者試験 科目Bの解き方ガイド — トレースのコツを図解で

公開: 2026年6月 カテゴリ: 基本情報技術者試験

科目Bは「知識を覚える試験」ではなく「コードを読んで、頭の中で実行する試験」です。この記事では、科目Bの出題構成、多くの人がつまずく理由、そして合否を分けるトレース(机上実行)の具体的なやり方を、図解つきで解説します。

科目Bはどんな試験か

基本情報技術者試験は「科目A」と「科目B」の2部構成です。科目Aが幅広い知識を問う四択なのに対し、科目Bは20問・100分で、その8割(16問)がアルゴリズムとプログラミング(擬似言語)、残り2割(4問)が情報セキュリティです。合格ラインは1000点満点中600点。つまり、擬似言語のコードを読めるかどうかが合否をほぼ決めます

科目B(20問・100分)の内訳 アルゴリズムとプログラミング(擬似言語) 16問(80%) セキュリティ 4問(20%) 1問あたり平均5分。「読んで・実行して・答える」を20回くり返す試験 合格ライン: 1000点満点中600点
図1: 科目Bの8割は擬似言語。ここを制する者が科目Bを制する

なぜ科目Bで落ちるのか

科目Bでつまずく人の原因は、ほぼ次の3つに集約されます。

① コードを「読んだ気」になって、実行していない … 眺めるだけでは選択肢は絞れません。科目Bの問題は「実行した結果どうなるか」を聞いてくるからです。
② 変数の中身を頭の中だけで追って、途中で迷子になる … ループが2重になった瞬間に、頭の中の値は崩壊します。紙に書かない人ほど落ちます。
③ 時間切れ … 1問5分ペースが必要なのに、トレースに慣れていないと1問に15分かかってしまう。

3つとも、原因は同じです。「トレース(机上実行)」の練習不足。逆に言えば、トレースさえ体に入れれば科目Bは安定します。

トレースとは — 自分がコンピュータになる

トレースとは、プログラムを1行ずつ、自分の手で実行して、変数の値の変化を記録することです。ポイントはただ1つ、「変数表」を書くこと。次の擬似言語を例にやってみます。

擬似言語のコード 1: 整数型: sum ← 0 2: 整数型: i 3: for (i を 1 から 3 まで 1 ずつ増やす) 4: sum ← sum + i 5: endfor 6: return sum 「sum に何が返るか?」が問われる → 眺めずに、右の表を書いて実行する 変数表(これを書く!) 周回 i sum 開始前 0 1周目 1 0+1=1 2周目 2 1+2=3 3周目 3 3+3=6 i=4 で条件を外れ終了 → 答えは 6 列=変数、行=ループの周回。これだけで迷子にならない
図2: トレースの基本形。「変数を列、周回を行」にした表を書くだけで正答率が変わる

トレースの手順(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分考えて手が動かない問題は印を付けて飛ばす——全問に触ることが、部分点のない選択式では最も期待値の高い戦い方です。

おすすめの時間配分(100分) セキュリティ 4問 / 15分 アルゴリズム(1問 約5分 × 16問) 迷ったら3分で飛ばす 見直し 5分 先に確実な得点源を確保 → 重いアルゴリズムへ。「全問に触る」が鉄則
図3: セキュリティ先行型の時間配分。アルゴリズムに85分を残す

頻出テーマと対策の優先順位

擬似言語の題材には流れがあります。優先して慣れておきたいのは次の順です。

① 配列の操作(合計・最大値・入れ替え)… ほぼ毎回出る基本形。
② 探索(線形探索・二分探索の 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点に尽きます。読むだけの勉強から、手を動かして実行する勉強へ。それが最短ルートです。

関連ページ: 擬似言語ステッパーソート可視化探索可視化基数変換ツール記事一覧