基本情報技術者 科目B完全対策
基本情報技術者試験の科目Bは、多くの受験者がつまずく関門です。疑似言語を使ったアルゴリズム問題が中心で、「暗記だけでは解けない」という点が科目Aと根本的に異なります。
本記事は 過去問AI が独自にまとめた学習ガイドです。試験要項の最新情報は必ず IPA 公式ページ で確認してください。
科目Bの概要
基本情報技術者試験の科目Bは、アルゴリズムとプログラミング(疑似言語)を中心に20問が出題されます(100分)。合格基準は600点以上(1000点満点)。出題の中心はアルゴリズムですが、IPA は科目Bを「情報セキュリティ」と「データ構造及びアルゴリズム」の二分野を中心と定めており、情報セキュリティ分野からも出題されます。短く知識で取りやすいセキュリティ問題を得点源にする対策は 科目Bの情報セキュリティで確実に得点する で扱っています。
科目Aとは異なり、「プログラムの動作を頭の中で追う力(トレース力)」が直接問われます。
IPA認定の講座を修了して科目Aを免除した人は、本番が 科目Bのみ になり、合否が科目Bだけで決まります(基本情報の科目A免除制度とは?)。免除の有無にかかわらず、科目Bを仕上げきることが合格の鍵です。
科目Bが難しい3つの理由
理由1:疑似言語の読み方を知らない受験者が多い
IPA独自の疑似言語は一般的なプログラミング言語と文法が異なります。慣れないうちは「何をしているコードか」の読み取りに時間がかかります。
理由2:時間が足りなくなる
20問・100分は1問5分。長いプログラムのトレースに10分かかると詰みます。「速くトレースする訓練」が必須です。100分20問の時間配分の組み立て方や、重い問題からの撤退の判断基準は 科目Bで時間が足りない人へ|時間配分と時間切れ対策 で詳しく扱っています。
理由3:ミスが連鎖する
変数の追跡を1箇所間違えると、後続の答えがすべてズレます。慎重に解きすぎると時間切れ、速く解きすぎるとミス—このバランスが難しい。
トレース力を鍛える3ステップ
ステップ1:変数追跡表を書く習慣をつける
プログラムを読みながら、変数の値の変化を表に書き出します。最初は遅くていい。正確さを先に身につけます。
変数追跡表の例: ループ i=1: a=5, b=3, result=0 ループ i=2: a=5, b=3, result=5 ループ i=3: a=5, b=3, result=10 ...
ステップ2:頻出パターンを体に覚えさせる
科目Bに頻出のアルゴリズムパターンは限られています。
頻出パターン一覧:
- 線形探索:配列を先頭から順に検索する
- 二分探索:ソート済み配列を半分に絞り込みながら検索
- バブルソート:隣同士を比較して交換し続ける
- 選択ソート:最小値を選んで先頭と交換
- 再帰呼び出し:関数が自分自身を呼ぶ(階乗・フィボナッチ等)
- スタック・キューの操作:LIFO/FIFOの動作追跡
- 2次元配列の操作:行列の和・積・転置
各パターンは「このコードを見たらこの動作」と反射できるまで繰り返し練習します。
ステップ3:速度を意識した演習
パターンが体に入ったら、過去問を時間制限つきで解きます。1問3〜4分が目標。AIコパイロットに「この問題をトレース表で解説して」と頼み、自分の解き方と比較します。
AIコパイロットの活用法
科目Bの学習でAIコパイロットが特に有効なのは次の場面です。
「このプログラムの動作を行番号別に追跡して」 変数追跡表をAIに作ってもらい、自分のトレース結果と照合します。
「再帰関数の展開をツリー形式で示して」 再帰の呼び出しスタックが視覚化され、理解が深まります。
「このアルゴリズムを別の実例(配列サイズ変更)で説明して」 数値を変えた別パターンで確認することで、パターンの本質が身につきます。
よくあるミスと対策
ミス1:配列の添字(インデックス)を1ずれで追う IPA疑似言語の配列は1始まりが多い。コードを読む最初に「添字が0始まりか1始まりか」を必ず確認します。
ミス2:ループの終了条件を間違える 「i < n」と「i ≤ n」の違いを見落とす。ループの最後の実行回数を手で確認します。
ミス3:再帰の基底条件を見落とす 再帰関数は「いつ終わるか」を最初に確認します。基底条件がない = 無限ループです。
学習スケジュール(科目B 4週間プラン)
| 週 | 内容 |
|---|---|
| 1週目 | 疑似言語の読み方・変数追跡表の習慣化 |
| 2週目 | 頻出パターン7種を1つずつ実例演習 |
| 3週目 | 過去問20問を時間制限なしで正確に解く |
| 4週目 | 時間制限つきで20問×3セット実施 |
よくある質問
Q1. 科目Bは何問・何分で出題され、合格基準は何点ですか? 科目Bはアルゴリズムとプログラミング(疑似言語)を中心に20問が出題され、試験時間は100分です。合格基準は1000点満点で600点以上。1問あたり約5分の計算になるため、速く正確にトレースする力が問われます。科目A・科目Bそれぞれで600点が必要で、正答率がそのまま得点にならないIRT採点の仕組みは 基本情報技術者は何点で合格?配点とIRTスコアの仕組み で詳しく解説しています。最新の出題範囲は必ず IPA 公式ページで確認してください。
Q2. プログラミング未経験でも科目Bに合格できますか? 特定のプログラミング言語の実務経験は必須ではありません。科目BはIPA独自の疑似言語で出題され、問われるのは「プログラムの動作を頭の中で追うトレース力」です。変数追跡表を書く習慣と頻出パターンの反復演習を積めば、未経験からでも合格レベルに到達できます。
Q3. 科目Aと科目Bはどちらを先に対策すべきですか? 科目Aで基礎用語を固めてから科目Bへ比重を移すのが王道ですが、科目Bはトレース力という別種のスキルで、直前の詰め込みが効きにくい分野です。早い段階から疑似言語の読み方と過去問演習を並行し、本記事の4週間プランのように後半を科目Bの時間制限演習に充てると安定します。
Q4. 科目Bの過去問はどこで演習できますか? 過去問AIでは 基本情報技術者 アルゴリズム分野の過去問 を無料で演習できます。データ構造や処理の流れを追う設問は科目Bのトレース力の土台になります。詰まった箇所はAIコパイロットに「このプログラムの動作を行番号別に追跡して」と頼めば、変数追跡表で1行ずつ解説します。なお科目Bの本試験問題はCBT方式のため公開されていません。公式サンプル問題や代替の練習素材の集め方は 科目Bの過去問がない問題への対処法 で整理しています。
まとめ
- 科目Bはトレース力が合否を決める
- 変数追跡表を書く習慣で正確さを先に習得
- 頻出7パターンを体に覚えさせる
- AIコパイロットで解法の確認・類題演習
- 最終週は時間制限つき演習で速度を鍛える