🎯 SES・ITエンジニア転職をお考えの方へ
「案件を選べない」「スキルアップできない」とお悩みではありませんか?株式会社アイティークロスでは、希望案件の100%ヒアリング・案件選択制を導入。年間休日125日・残業月平均12.3時間と、無理のない環境で成長できます。 ▶ 採用情報・待遇を見る
基本情報技術者試験の科目Bとは?2023年の制度変更を徹底解説
基本情報技術者試験の科目B対策に取り組む前に、まずは試験制度を正しく理解しましょう。2023年4月の大幅リニューアルにより、旧午後試験から大きく変わっています。ここを押さえないまま勉強を始めると、的外れな対策になりかねません。
旧午後試験と科目Bの違い
かつての午後試験は、長文読解型の大問が11問出題され、そのうち5問を選択して回答する形式でした。試験時間は150分で、情報セキュリティ、ソフトウェア開発(C言語・Java・Python・アセンブラ・表計算)など幅広い分野から出題されていました。
一方、2023年4月以降の科目Bは以下のように変更されています。
| 項目 | 旧午後試験 | 科目B(新制度) |
|---|---|---|
| 出題数 | 11問中5問選択 | 20問全問必須 |
| 試験時間 | 150分 | 100分 |
| 出題形式 | 長文読解型 | 小問形式(多肢選択式) |
| 出題分野 | セキュリティ、プログラミング、DB、ネットワーク等 | アルゴリズムとプログラミング(16問)+情報セキュリティ(4問) |
| プログラミング言語 | C・Java・Python・CASLⅡ・表計算から選択 | 擬似言語のみ |
| 合格基準 | 100点満点中60点以上 | 1000点満点中600点以上(IRT方式) |
最大の変更点はプログラミング言語の選択が不要になったことです。すべて「擬似言語」という共通の記法で出題されます。特定のプログラミング言語の文法を覚える必要がなくなった反面、アルゴリズムの本質的な理解がより重要になりました。
科目Bの出題範囲と配点比率
科目Bの出題は大きく2つの分野に分かれます。
- アルゴリズムとプログラミング:20問中16問(80%)
- 情報セキュリティ:20問中4問(20%)
見てわかるとおり、アルゴリズムとプログラミングが圧倒的な比重を占めます。科目B対策の成否は、アルゴリズム問題への対応力で決まるといっても過言ではありません。
IRT方式(項目応答理論)とは
新制度では採点方式がIRT(Item Response Theory)に変わりました。これは問題の難易度に応じて配点が変動する仕組みです。単純に「20問中12問正解すれば合格」とは限りません。難しい問題を正解すると高い得点が得られ、簡単な問題を間違えると大きく減点される可能性があります。
そのため、確実に解ける基本問題を落とさないことが合格への最短ルートです。応用的な難問に時間をかけすぎるより、基礎をしっかり固める戦略が有効です。
💻 名古屋・愛知でエンジニアとして働くなら「アイティークロス」
大手自動車・金融・官公庁など直請け・優良案件多数!異業種出身者が5割以上で、未経験からのJava/Python/インフラ研修体制も万全です。
科目Bの出題傾向を徹底分析|頻出テーマと問題パターン
効率的な基本情報技術者試験の科目B対策を行うには、出題傾向の把握が不可欠です。IPAが公開しているサンプル問題や、実際の受験者の声をもとに、頻出テーマを分析しましょう。
アルゴリズムとプログラミング分野の頻出テーマ
16問出題されるアルゴリズム分野では、以下のテーマが繰り返し出題されています。
| 頻出度 | テーマ | 具体的な内容 |
|---|---|---|
| ★★★ | 線形探索・二分探索 | 配列から特定の値を見つけるアルゴリズム |
| ★★★ | ソート(整列)アルゴリズム | バブルソート、選択ソート、挿入ソート |
| ★★★ | 配列操作 | 要素の追加・削除・入れ替え・集計 |
| ★★☆ | スタック・キュー | データ構造の基本操作(push, pop, enqueue, dequeue) |
| ★★☆ | 文字列処理 | 文字列の検索、置換、分割、比較 |
| ★★☆ | 再帰処理 | 関数が自分自身を呼び出す処理パターン |
| ★☆☆ | リスト構造 | 連結リストの操作(挿入、削除、探索) |
| ★☆☆ | 木構造・二分木 | 木の走査(前順・中順・後順) |
| ★☆☆ | ハッシュ | ハッシュ関数を使ったデータ管理 |
特に探索アルゴリズムとソートアルゴリズムは毎回のように出題されます。まずはこの2つを完璧に理解することが最優先です。
擬似言語の読み方を確実にマスターする
科目Bの全問題は「擬似言語」で記述されています。擬似言語とは、特定のプログラミング言語に依存しない、試験用の統一的な記法です。IPAの公式サイトに擬似言語の仕様書が公開されていますので、必ず目を通してください。
擬似言語で押さえるべき基本文法は以下のとおりです。
- 変数宣言:整数型、実数型、文字型、論理型
- 代入:「←」記号を使用(例:x ← 10)
- 条件分岐:if〜elseif〜else〜endif
- 繰り返し:while〜endwhile、for〜endfor、do〜while
- 配列:添字は1から始まるケースと0から始まるケースの両方がある
- 関数・手続き:引数の値渡しと参照渡し
プログラミング経験がある方は、Pythonの文法などと混同しないよう注意してください。擬似言語には独自のルールがあるため、必ず擬似言語の仕様を確認してから問題演習に入ることをおすすめします。
情報セキュリティ分野の出題パターン
4問出題されるセキュリティ分野は、アルゴリズムに比べると対策しやすい領域です。主に以下のような内容が問われます。
- 攻撃手法の理解:SQLインジェクション、クロスサイトスクリプティング(XSS)、フィッシング、マルウェアの種類
- 対策技術:ファイアウォール、暗号化(共通鍵・公開鍵)、デジタル署名、認証技術
- セキュリティマネジメント:リスク分析、インシデント対応、アクセス制御
- 具体的なシナリオ問題:ある企業の情報セキュリティ事故の原因と対策を考える問題
セキュリティの問題は、科目Aの知識がそのまま活かせるケースが多いです。科目Aの対策と並行して学習すれば、効率的に得点源にできます。
科目B対策の学習ロードマップ|段階別に解説
基本情報技術者試験の科目B対策は、やみくもに問題を解くだけでは効率が悪いです。段階を踏んだ学習が合格への最短ルートです。ここでは、プログラミング未経験の方でも無理なく取り組めるロードマップを紹介します。
ステップ1:擬似言語の基本文法を理解する(目安:1〜2週間)
最初のステップは、擬似言語の文法を正確に理解することです。ここを曖昧にすると、問題文を読み解くことすらできません。
具体的には以下の項目をマスターしてください。
- 変数の宣言と代入の書き方
- if文(条件分岐)の処理の流れ
- while文・for文(繰り返し)の処理の流れ
- 配列の添字と要素の扱い方
- 関数(手続き)の呼び出し方と戻り値
この段階では問題を解く必要はありません。擬似言語で書かれたプログラムを「読んで、処理の流れを追える」状態をゴールにしましょう。参考書のサンプルコードを1行ずつ手でトレースする(なぞる)練習が非常に効果的です。
ステップ2:基本的なアルゴリズムを理解する(目安:2〜3週間)
文法を理解したら、次は基本的なアルゴリズムの学習に進みます。以下の順番で学ぶと理解がスムーズです。
- 線形探索:配列の先頭から順番に調べるシンプルなアルゴリズム
- 二分探索:ソート済み配列を半分ずつ絞り込む効率的なアルゴリズム
- バブルソート:隣接する要素を比較・交換して並べ替えるアルゴリズム
- 選択ソート:最小値(最大値)を見つけて先頭から確定していくアルゴリズム
- スタック・キュー:LIFO(後入れ先出し)とFIFO(先入れ先出し)の概念
- 再帰処理:関数が自分自身を呼び出すパターン(階乗、フィボナッチ数列など)
各アルゴリズムを学ぶ際は、以下の3つのステップを意識してください。
- アルゴリズムの仕組みを図や言葉で理解する(まだコードは見ない)
- 擬似言語で書かれたコードを読み、処理を手でトレースする
- 簡単な例題で実際に手を動かして問題を解く
いきなりコードを読んでも理解しにくいです。まずは「このアルゴリズムは何をしたいのか」を日本語で理解してからコードに進むと、格段に理解しやすくなります。
ステップ3:トレース力を鍛える(目安:2〜3週間)
科目Bで最も重要なスキルは「トレース力」です。トレースとは、プログラムの処理を1行ずつ追いかけ、変数の値の変化を正確に把握することです。
トレースの具体的な手順は以下のとおりです。
- 紙とペンを用意する(またはノートアプリ)
- プログラムに出てくる変数名をすべて書き出す
- 1行目から順番に処理を追い、変数の値を更新していく
- 条件分岐では「この時点で変数の値はいくつか?」を必ず確認する
- 繰り返し処理では、各ループの開始時と終了時の変数の状態を記録する
具体例を挙げてみましょう。以下のような擬似言語のプログラムがあったとします。
「整数型の配列A = {3, 1, 4, 1, 5}に対して、要素数分だけ繰り返し、隣接する要素を比較して小さい方が前になるように交換する」というバブルソートの処理を考えます。
この場合、ノートに以下のような表を作ります。
| ループ回数 | 比較する添字 | A[1] | A[2] | A[3] | A[4] | A[5] | 交換の有無 |
|---|---|---|---|---|---|---|---|
| 初期状態 | – | 3 | 1 | 4 | 1 | 5 | – |
| 1回目 | 1と2 | 1 | 3 | 4 | 1 | 5 | あり |
| 2回目 | 2と3 | 1 | 3 | 4 | 1 | 5 | なし |
| 3回目 | 3と4 | 1 | 3 | 1 | 4 | 5 | あり |
| 4回目 | 4と5 | 1 | 3 | 1 | 4 | 5 | なし |
このように変数の状態を「見える化」する練習を繰り返すことで、確実にトレース力が向上します。最初は時間がかかっても構いません。正確さを優先してください。
ステップ4:過去問・予想問題で実戦練習(目安:2〜4週間)
基本的なアルゴリズムとトレース力が身についたら、いよいよ実戦形式の問題に取り組みます。
- IPAのサンプル問題:公式サイトで無料公開されているので必ず解く
- 市販の予想問題集:科目B専用のものを選ぶ
- 過去の午後試験のアルゴリズム問題:形式は違うが、考え方の練習になる
問題を解く際に意識してほしいポイントがあります。
- 制限時間を意識する:1問あたり5分が目安(100分÷20問)
- 間違えた問題は必ず解き直す:なぜ間違えたかを分析する
- 解き方のパターンを蓄積する:「この形のコードが出たらこう読む」という型を増やす
ステップ5:弱点を補強して仕上げる(目安:1〜2週間)
最後のステップでは、自分の弱点を集中的に補強します。問題演習を通じて「再帰処理が苦手」「配列の添字でよく間違える」など、弱点が見えてくるはずです。
弱点の補強には以下の方法が効果的です。
- 苦手テーマの基本に立ち返って復習する
- 同じテーマの問題を集中的に10問以上解く
- 自分で簡単なプログラムを擬似言語で書いてみる
この5ステップを着実に進めれば、プログラミング未経験の方でも約2〜3ヶ月で科目Bの合格レベルに到達できます。
アルゴリズム問題の解き方|実践テクニック10選
基本情報技術者試験の科目B対策で差がつくのは、問題を解くテクニックです。ここでは、実際に得点を伸ばすための実践的な解法テクニックを10個紹介します。
テクニック1:問題文の「目的」を最初に把握する
科目Bの問題には、必ず「このプログラムは何をするものか」という説明が書かれています。コードを読む前に、まず問題文の日本語部分を丁寧に読んで、プログラムの目的を理解してください。
目的がわかれば、コードの各部分が何をしているのか推測しやすくなります。逆に目的を把握せずにコードだけ読もうとすると、何をやっているのかわからず時間を浪費してしまいます。
テクニック2:具体的な値で手を動かす
抽象的にコードを読んでも理解しにくい場合は、具体的な数値を当てはめてトレースするのが鉄則です。
例えば「配列の要素を昇順にソートする」という問題であれば、A = {5, 2, 8, 1} のような小さな配列を自分で設定し、実際に値を追いかけてみましょう。多くの場合、問題文にも具体例が示されています。それを活用しない手はありません。
テクニック3:選択肢を先に確認する
科目Bは多肢選択式です。選択肢を先に見ることで、何が問われているかをより正確に把握できます。
例えば「プログラム実行後の配列の状態として正しいものを選べ」という問題であれば、選択肢に並んでいる配列の違いに注目します。違いがあるポイントを見極めれば、トレースすべき箇所を絞り込めます。
テクニック4:ループの回数と終了条件を正確に把握する
科目Bの問題でミスが多いのは、ループの回数を正確に数えられないケースです。以下のポイントを意識してください。
- for文の開始値・終了値・増分値を正確に確認する
- 「未満(<)」と「以下(≦)」の違いに注意する
- while文の終了条件が「いつ満たされるか」を追う
- ループ内でbreak(途中脱出)がないか確認する
ループの回数が1回ずれるだけで、結果がまったく変わることがあります。ここは慎重に確認しましょう。
テクニック5:配列の添字に注意する
擬似言語の問題では、配列の添字が0始まりの場合と1始まりの場合があります。問題文で指定されている添字の開始値を必ず確認してください。
添字のミスは非常に多いケアレスミスです。トレース表を書く際は、添字の範囲を表の上に明記しておくとミスを防げます。
テクニック6:関数呼び出しは「中に入って戻ってくる」を意識する
関数(手続き)が複数登場する問題では、処理の流れが複雑になります。ポイントは「呼び出し元 → 関数内の処理 → 戻り値を受け取って呼び出し元に戻る」という流れを丁寧に追うことです。
再帰関数の場合は特に注意が必要です。呼び出しの階層をインデント(字下げ)で記録すると、どの階層の処理を実行中か把握しやすくなります。
テクニック7:条件分岐は「真の場合」と「偽の場合」を必ず両方確認する
if文では、条件が真の場合の処理だけでなく、偽の場合(else側)の処理も確認する癖をつけてください。問題によっては、else側の処理が答えに大きく影響します。
テクニック8:変数の初期値と更新タイミングを記録する
プログラム内で使われる変数は、初期値が何に設定されているかを必ず記録しましょう。初期値が0なのか1なのか、あるいは配列の最初の要素なのかで、処理結果が変わります。
また、変数が更新されるタイミング(ループの先頭なのか末尾なのか、条件分岐の中なのか外なのか)も重要です。
テクニック9:時間配分を守る
科目Bは100分で20問を解く必要があります。1問あたりの平均時間は5分です。しかし、簡単な問題は2〜3分で解ける一方、複雑な問題は7〜8分かかることもあります。
おすすめの時間配分戦略は以下のとおりです。
- 1周目(60分):全問に目を通し、解ける問題から解く。迷ったらマークして飛ばす
- 2周目(30分):飛ばした問題に戻り、じっくり解く
- 見直し(10分):マークした問題を中心に確認
テクニック10:消去法を活用する
どうしても正解がわからない問題は、明らかに間違っている選択肢を消去する方法で正答率を上げましょう。
例えば、ソートの問題で「昇順に並べ替える」とあるのに、選択肢に降順のものが混じっていれば即座に排除できます。4択を2択に絞れるだけでも、正答率は25%から50%に上がります。
情報セキュリティ分野の効率的な対策法
科目Bのもう一つの出題分野である情報セキュリティは、全20問中4問(20%)を占めます。アルゴリズムに比べると配点は少ないですが、対策が立てやすく得点源にしやすい分野です。確実に4問全問正解を狙いましょう。
セキュリティ問題の特徴
科目Bのセキュリティ問題は、科目Aで問われる知識をベースに、より実践的なシナリオが出題されます。具体的には以下のようなパターンです。
- 「A社でこのようなセキュリティ事故が発生した。原因として考えられるものはどれか」
- 「以下のセキュリティ対策のうち、この脅威に対して有効なものはどれか」
- 「このネットワーク構成における脆弱性はどこか」
問題自体は長文ではなく、比較的短い文章で出題されます。科目Aの知識があれば解ける問題がほとんどです。
押さえるべきセキュリティ用語・概念一覧
以下の用語と概念を確実に押さえておきましょう。
| カテゴリ | 用語・概念 |
|---|---|
| 攻撃手法 | SQLインジェクション、XSS、CSRF、DoS/DDoS、ブルートフォー
🔗 あわせて読みたい資格・キャリア人気記事
河合
パソコンレンタル事業「KUREBA」を運営。IT機器・ハードウェアの活用やWebメディア運営の現場経験に基づき、読者にとって信頼性の高い実践的な情報を監修しています。 タイトルとURLをコピーしました
|