基本情報技術者の科目Bが苦手な人へ|
100分20問を攻略するトレース練習
擬似言語を読んでも解けないときに確認したい、「処理を追う」ための具体的な練習方法を解説します。
科目Bの擬似言語問題で「解説を読めば分かるのに、自分では解けない」という場合は、 変数・配列・条件分岐・繰り返しによって値がどう変化するかを、自分で追う練習 を取り入れてみましょう。コードを読むだけでなく、途中の状態を書き出すことで、どこで判断を誤ったのかも確認しやすくなります。
基本情報技術者試験の科目Bは、100分で20問に解答します。 出題はアルゴリズムとプログラミング分野16問、情報セキュリティ分野4問で構成されています。
この記事では科目B全体の出題範囲を広く説明するのではなく、 特に擬似言語・アルゴリズム問題で処理を追えない人の練習方法に絞って解説します。
→ 基本情報技術者の科目B対策|20問100分を「アルゴリズム16問+情報セキュリティ4問」で攻略の記事で、科目B全体を確認してください。
まず確認|科目Bは100分・20問
| 項目 | 内容 |
|---|---|
| 試験時間 | 100分 |
| 出題数・解答数 | 20問・20問 |
| 出題形式 | 多肢選択式 |
| アルゴリズムとプログラミング | 16問 |
| 情報セキュリティ | 4問 |
100分÷20問を単純計算すると、1問あたり平均5分です。 ただし、これは計算上の平均であり、IPAが各問題を5分で解くよう指定しているわけではありません。
「読める」と「追える」は違う
擬似言語の構文を知っていても、問題を正しく解けるとは限りません。
例えば、for文の意味を説明できても、繰り返しのたびに変数や配列の値がどう変化するかを追えなければ、最終的な出力を判断できないことがあります。
IPAの評価区分や合格基準ではありません。自分がどの段階で止まっているかを確認するための学習上の目安として利用してください。
トレース練習の基本手順
「コードの意味は分かるのに答えを間違える」という場合は、頭の中だけで処理せず、途中の状態を書き出してみましょう。
-
問題が何を求めているか確認する
最大値、個数、戻り値、配列の内容など、最終的に何を求める問題なのかを先に確認します。 -
変数・配列の初期状態を書く
変数の初期値や配列の要素を書き出し、処理開始時点の状態を明確にします。 -
条件式の真・偽を確認する
ifなどの条件分岐では、その時点の値を使ってどちらの処理へ進むのかを確認します。 -
値が変わるたびに記録する
代入や計算が行われたら、変数や配列の新しい値を書きます。 -
繰り返し回数を記録する
何回目のループなのか、どの条件で繰り返しが終了するのかを確認します。 -
最終的な戻り値・出力を選択肢と照合する
最後まで処理を追ったあと、問題で求められている値と選択肢を照合します。
トレース表を作ると処理を整理しやすい
変数が複数登場する問題では、簡単な表を作って処理を追う方法があります。
| 処理 | 変数 i | 変数 x | 確認すること |
|---|---|---|---|
| 初期状態 | 0 | 0 | 処理開始時の値 |
| 1回目 | 1 | 変化後の値 | 条件式と代入結果 |
| 2回目 | 2 | 変化後の値 | 前回の値を引き継いでいるか |
※ 上表は特定の本試験問題を再現したものではなく、トレース方法を説明するための例です。
実際の問題では、登場する変数や配列に合わせて列を増減してください。 きれいな表を作ることが目的ではなく、値の変化を見失わないことが目的です。
間違えた問題は「誤答原因」で分ける
科目Bで同じような間違いが続く場合は、正答だけを確認するのではなく、どの段階で判断を誤ったかを分類してみましょう。
| 誤答原因 | よくある状態 | 次に確認すること |
|---|---|---|
| 記法・構文の理解不足 | 条件分岐、繰り返し、関数などの意味自体が分からない | 擬似言語の記法や基本的な処理へ戻る |
| トレースミス | 途中で変数の値やループ回数がずれる | 途中の値を書き出して、どの行からずれたか確認する |
| 条件の読み落とし | 配列の添字、初期値、引数、終了条件などを見落とす | 問題文の条件とコードを対応させて読み直す |
| 時間の使いすぎ | 処理は追えるが、一つの問題で長時間止まる | どの処理で時間がかかったか記録し、同種問題で再確認する |
- どの行までは正しく追えていたか
- 最初に値がずれた場所はどこか
- 構文を理解していなかったのか、単純な記録ミスだったのか
- 問題文の条件を読み落としていなかったか
- 同じ考え方の別問題でも処理を追えるか
配列問題では「添字」と「値」を分けて考える
科目Bで混乱しやすいポイントの一つが、配列の添字と、その位置に格納されている値の混同です。
配列が登場したら、問題文で示されている添字の扱いを確認し、「今見ているのは位置なのか、格納されている値なのか」を区別して追います。
条件分岐・繰り返しでは「今の値」で判断する
条件分岐
if文などでは、コードを見た印象で進むのではなく、その時点の変数の値を条件式へ当てはめて、真か偽かを確認します。
繰り返し
for文やwhile文では、「何回繰り返すか」だけでなく、各回でどの値が変化し、どの条件で終了するのかを確認します。
関数・手続
関数が登場する場合は、渡される引数、関数内での処理、戻り値、呼び出し元へ戻った後の状態を分けて確認します。
最初から速く解こうとしなくてよい
トレース練習を始めた段階では、まず処理を正確に追えることを優先します。
慣れてきたら問題ごとの所要時間を測り、「どの種類の処理で時間がかかるのか」を確認します。 最終的には100分・20問という試験時間を意識した演習も必要ですが、最初からすべての問題を同じ時間で処理する必要はありません。
科目B全体攻略の記事で、20問100分という試験構成と合わせて確認してください。本記事ではトレースの正確さと誤答原因の把握を中心に扱います。
IPAの公開問題で実際の形式を確認する
擬似言語の練習では、IPAが公開している科目Bのサンプル問題・公開問題も確認してください。
独自問題だけで学習するのではなく、公式問題で擬似言語の表記、問題文の構成、処理の追い方を確認したうえで、追加演習へ進むと学習内容を整理しやすくなります。
資格ブートキャンプの問題は追加演習に使う
資格ブートキャンプのWEB問題・PDF教材は、試験範囲や公式情報を参考に独自作成した試験対策用問題です。
IPAが実際に出題した本試験問題そのものではありません。また、サイト内での正答率を本試験の評価点へ直接換算することはできません。
IPAの公開問題で現在の形式を確認したうえで、トレース練習の追加演習や弱点確認に利用してください。
よくある質問
参照した公式情報
※ 試験制度・出題範囲・免除制度等は変更される場合があります。受験前にIPA公式サイトで最新情報をご確認ください。
擬似言語を「読む」から「追う」へ
まず1問解き、途中の変数・配列の値を書き出してみましょう。 正解・不正解だけでなく、「どこまで正しく追えたか」を確認することがトレース練習の第一歩です。
