基本情報技術者試験の合否を分ける科目B(アルゴリズム・プログラミング)の攻略法を徹底解説。擬似言語の読み方・トレース技法・パターン別の解き方・対策手順を整理。科目Bで詰まっている方向けの実践的ガイドです。
目次
結論:基本情報技術者の科目Bは20問・100分で、アルゴリズムとプログラミングが16問、情報セキュリティが4問です。合格には600点以上が必要で、擬似言語のプログラムを手でトレースする練習量が得点に直結します。変数の表を作り、1行ずつ追う練習を早めに始めてください。
科目Bが合否を分ける理由
基本情報技術者試験において科目Bは最大の難関です。理由は明確です。「読んで理解する」知識問題ではなく、「コードを追って答えを導く」実践的な問題だからです。
IPAの評価点分布(令和8年9月分)から当サイトが計算すると、600点以上だった人の割合は科目B 48.2%で、科目A(65.3%)より低くなっています(合格率とは別の数字です。確認日:2026-10-29。出典:IPA 評価点分布)。合格には科目A・科目Bの両方で600点以上が必要なので、科目Aで点が取れても、科目Bで600点に届かなければ不合格です。
科目Aは暗記と理解で着実に得点を積み上げられますが、科目Bは練習量が直接スコアに影響します。独学でも合格できますが、アルゴリズム練習を後回しにすると、直前期に間に合わなくなるおそれがあります。
参照: IPA 試験要綱 Ver.5.6
参照: IPA 情報処理技術者試験 統計情報
科目Bの出題構成
| 分類 | 問題数 | 割合 |
|---|---|---|
| アルゴリズムとプログラミング | 16問 | 80% |
| 情報セキュリティ | 4問 | 20% |
| 合計 | 20問 | 100% |
試験時間は100分。20問を100分で割ると1問あたり約5分ですが、難しいアルゴリズム問題には、それ以上かかることもあります。時間配分の戦略が重要です。
科目Bの出題構成:20問・100分。アルゴリズムとプログラミング16問、情報セキュリティ4問。合格は評価点600点以上(1,000点満点)。最終確認日:2026-10-02。出典:IPA 試験要綱 Ver.5.6。
擬似言語の読み方:基礎から実践まで
擬似言語とは
IPAが試験用に規定したプログラム記述形式です。以下の構文要素を理解する必要があります。
変数・代入:
整数型: x ← 5
条件分岐:
もし (x > 3) ならば
処理A
そうでなければ
処理B
を実行する
繰り返し:
x を 1 から 10 まで 1 ずつ増やしながら
処理
を繰り返す
配列・関数: 添字アクセス(a[i])、関数呼び出し(call 関数名)も押さえておきたい書き方です。
参照: IPA 基本情報技術者試験・IPA 試験要綱 Ver.5.6(基本情報技術者試験では擬似言語を扱う)
ハンドトレース技法
アルゴリズム問題で最も重要なスキルがハンドトレースです。コードを1行ずつ実行しながら、変数の値の変化を手書きで表に記録していく方法です。
実践手順:
1. 変数表を作成:コード中に登場する変数を全て書き出し、列を作る
2. 初期値を記入:プログラムの最初の変数代入を記録
3. 1行ずつ実行:条件分岐では「どちらの分岐に入るか」を明示
4. 繰り返しをカウント:ループ変数の変化を丁寧に追う
5. 関数呼び出しを展開:再帰関数は特に注意してスタックを管理
最初は時間がかかっても構いません。練習を重ねるうちに、手早く解けるようになります。
FE過去問(解説つき)で今すぐ練習できます。
科目Bは「5つのパターン」に集約できる
科目Bのアルゴリズム16問を、当サイトは以下の5パターンに整理しています(IPAの分類ではありません)。「量をこなす」だけでなく「パターンごとに解法テンプレを持つ」ことをおすすめします。
| # | パターン | 主な論点 | 難易度 |
|---|---|---|---|
| 1 | 線形探索・集計系 | 配列を端から走査し、合計/最大/出現回数を数える | ★☆☆ |
| 2 | 二分探索・整列前提探索 | ソート済み配列に対する lo / hi / mid の更新 | ★★☆ |
| 3 | 整列(ソート)系 | バブル/選択/挿入ソート・パス毎の配列状態追跡 | ★★☆ |
| 4 | データ構造操作系 | スタック(LIFO)・キュー(FIFO)・連結リストの挿入/削除 | ★★☆ |
| 5 | 再帰・木構造系 | 階乗/フィボナッチ/木の深さ優先・幅優先探索 | ★★★ |
※ 5パターンは当サイトの整理で、パターンごとの出題数はIPAが公表していません。IPAが定めているのは、アルゴリズムとプログラミング16問・情報セキュリティ4問という内訳です。
戦略: ★☆☆〜★★☆ の4パターンを先に固め、難問の再帰・木構造(★★★)は基本が固まってから取り組みます。
各パターンの解法テンプレ
1. 線形探索・集計系
配列を最初から最後まで1要素ずつ走査するパターン。変数表に「i」と「集計値(合計・最大・カウントなど)」の2列を作って1行ずつ更新するだけで解けます。
典型トレース:
| ステップ | i | a[i] | 合計 |
|---|---|---|---|
| 初期 | 1 | 3 | 0 |
| 1巡 | 1 | 3 | 3 |
| 2巡 | 2 | 5 | 8 |
| 3巡 | 3 | 2 | 10 |
★1ループの中で何が条件で更新されるかを正確に追えば、必ず満点が狙えるパターンです。
2. 二分探索
ソート済み配列を前提に、中央値と比較しながら探索範囲を半分に絞ります。
トレースのコツ: ループ変数(lo, hi, mid)の変化を縦に並べて書く。mid = (lo + hi) / 2 の整数部のみ取る挙動と、lo > hi で終了する境界条件に注意。
3. ソートアルゴリズム(バブル・選択・挿入)
配列を並び替えるアルゴリズムです。各パスごとの配列状態を1行ずつ縦に並べて書くと追いやすくなります。バブルソートは「隣接要素の比較・入れ替え」、選択ソートは「未ソート部の最小値を探す」、挿入ソートは「ソート済み部の正しい位置に差し込む」という基本動作を体で覚えてください。バブルソートの手順と比較回数はバブルソートの記事で追えます。
4. スタック・キュー(データ構造操作系)
データ構造の問題です。スタック(LIFO・後入れ先出し)・キュー(FIFO・先入れ先出し)の push/pop・enqueue/dequeue 操作を追います。
トレースのコツ: スタックは縦に積み上げ、キューは横に並べる。状態を1操作ごとに図示すると視覚的に追える。練習にはスタックに push と pop を行ったあとに残るデータを求める問題があります。
5. 再帰関数・木構造(最難関)
関数が自分自身を呼び出すパターンです。FEではフィボナッチ数列・階乗計算・木の深さ優先探索(DFS)が典型例です。再帰的に定義された関数 f(n) の値を求める問題(サンプル問題)や再帰的に階乗を計算する関数の式を答える問題で、再帰の動きを確かめられます。
トレースのコツ: コールスタック(どの呼び出しがどのパラメータで実行中か)を縦に積み上げて書く。スタックが深くなるほど丁寧に管理する。本番では時間がかかりすぎる場合は後回しにする判断が重要です。
番外:文字列処理
文字列の検索・置換・分割処理。添字の動きを慎重に追うことが重要です。off-by-oneエラー(境界値の扱い)に注意してください。1〜5のパターンに含まれる場合と独立した1問として出る場合があります。
科目B対策:時間別ロードマップ
序盤(学習開始〜2ヶ月前)
まず擬似言語の仕様を読み、全構文を把握する。その後、簡単なアルゴリズム問題(線形探索・単純ソート)を時間をかけてトレース。答え合わせより「トレース過程が合っているか」を重視する。
中盤(2ヶ月前〜1ヶ月前)
速度を意識しながら練習。再帰・文字列処理を集中練習。セキュリティ4問は科目Aで覚えた知識を確認する程度で仕上げる。
直前期(1ヶ月前〜)
20問セットを100分で解く模擬試験を複数回実施。時間が余る問題・足りない問題を把握し、本番での取捨選択戦略を確立する。
FE過去問(本番形式演習)で模擬試験に挑戦できます。
よくある失敗パターンと対策
失敗1:科目Aに時間を使いすぎる
科目Aは仕上げやすいため時間を割きすぎる方が多いです。科目Bは練習時間の絶対量が必要なため、科目Bに時間を多めに割くことをおすすめします。
失敗2:読んで理解しようとする
コードは読んで理解するのではなく、「手を動かしてトレースする」ものです。頭の中だけで追おうとすると間違いが増えます。必ず紙に書いてトレースする習慣をつけてください。
失敗3:難問に時間をかけすぎる
本番の100分で20問は、難問に10分以上かけると時間が足りなくなります。「解けない問題は後回し」の判断を早めに下す練習も重要です。
セキュリティ問題の効率的な対策
情報セキュリティ4問では、次のような分野の知識が役立ちます。
- 認証・アクセス制御:パスワードポリシー、多要素認証
- 暗号化:共通鍵・公開鍵の仕組み、ハッシュ関数
- マルウェア・攻撃手法:SQLインジェクション、フィッシング、ランサムウェア
- ネットワークセキュリティ:ファイアウォール、HTTPS、VPN
科目Aのセキュリティ域を学習した後で科目Bのセキュリティ問題を解くと、知識を確認する場面が多いことがわかります。
まとめ
科目Bのアルゴリズム・プログラミングは、基本情報技術者試験の最大の難関です。しかし「擬似言語の仕様を理解する」→「ハンドトレースを繰り返し練習する」→「時間配分を本番想定で練習する」という手順を踏めば、プログラミング未経験でも、合格に近づけます。
練習量が直接スコアに反映される科目です。早めに始めて、毎日少しずつ練習することが合格への最短ルートです。
関連記事
よくある質問
Q科目Bのアルゴリズムはなぜ難しいのですか?
「コードを読んで動作を頭の中で追う(トレース)」能力が求められるため、知識の暗記だけでは対応できません。また試験時間100分で20問という構成上、1問あたり5分という時間制約の中でコードを正確に読む訓練が必要です。慣れるまで時間がかかりますが、練習量に比例して確実に上達します。
Q擬似言語とは何ですか?どうやって読めばよいですか?
IPAが規定する試験用のプログラム記法です。実際のプログラミング言語(Python・Javaなど)ではなく、日本語に近い形式で処理を記述します。読み方の基本は「変数を手書きで表に書き出しながら1行ずつ実行していく(ハンドトレース)」です。最初は時間がかかりますが、慣れると素早く追えるようになります。
Q科目Bのセキュリティ問題は対策が必要ですか?
20問中4問(20%)がセキュリティです。科目Aのセキュリティ分野の知識が役立つため、科目A学習と並行して押さえておくと効率的です。アルゴリズム16問に比べると問題数は少ないですが、得点源にできます。
Qプログラミング経験がなくても科目Bは解けますか?
解けます。擬似言語はIPAが定義した試験専用の記法で、Pythonなどの実際のプログラミング言語を知らなくても読めるように設計されています。ただしプログラミング経験がある方がトレースに慣れるのは速いのは事実です。未経験の方は「擬似言語の仕様書(IPA公開)」を熟読することから始めてください。
Q科目Bの合格ラインは何点ですか?
科目Bも科目Aと同様に1,000点満点・600点以上が合格基準です。IRT(項目応答理論)による得点換算のため、正解数が同じでも得点が変わる場合があります。問題の難易度によって配点が変動する仕組みです。
法令や試験の数字は、改正や年度で変わります。この記事の最終確認日は2026年10月29日です。申込みや合格基準は、必ず試験団体の公式情報で確かめてください。

