科目Bの解き方|擬似言語アルゴリズムの読み方とコツ
基本情報技術者試験でもっとも「差がつく」のが科目Bです。ここでは、多くの人がつまずく 擬似言語アルゴリズムの読み方を、基礎の記法から解く手順、頻出のワナまで順に解説します。
科目Bとは(配点と内容)
科目Bは20問・100分・1,000点満点(基準点600点)。中心は アルゴリズムとプログラミングで、加えて情報セキュリティ分野からも出題されます。 特定のプログラミング言語ではなく、試験共通の擬似言語で書かれたコードを読み解きます。
なぜ「シンプルなのに難しい」のか
当サイトの取材で、受験者がこう表現していました。
「シンプルな構造すぎて、逆に難しいと感じる」
科目Bの問題文は複雑ではありません。難しさの正体は、短いコードのロジックを、頭の中で正確に最後まで追いきる集中力にあります。 これは知識の暗記では身につかず、手を動かした反復でしか鍛えられません。だから早めの着手が効きます。
擬似言語の読み方(最低限これだけ)
擬似言語は日本語混じりで読みやすい記法です。よく出る要素はこれだけ押さえれば十分に読めます。
- 代入:
x ← 1は「x に 1 を入れる」 - 配列:
data[1]は配列の1番目。要素番号は原則1から - 条件分岐:
if ( 条件 ) … elseif … else … endif - 繰り返し:
for ( i を 1 から n まで 1 ずつ増やす ) … endfor/while ( 条件 ) … endwhile - 演算:
modは余り、÷は商の整数部(小数点以下切り捨て)
解く手順:トレース表を作る
おすすめは、変数の値の変化を表にして書き出す方法です。たとえば「各桁の合計を求める」次のコードを、n=1234 で追ってみます。
○整数型: digitSum(整数型: n)
整数型: s
s ← 0
while (n > 0)
s ← s + (n mod 10)
n ← n ÷ 10
endwhile
return s | ループ回数 | n mod 10 | s(合計) | n ÷ 10 後のn |
|---|---|---|---|
| 1回目 | 4 | 4 | 123 |
| 2回目 | 3 | 7 | 12 |
| 3回目 | 2 | 9 | 1 |
| 4回目 | 1 | 10 | 0 |
n が 0 になって while を抜け、戻り値は 10。こうして1行ずつ・1変数ずつ書き出せば、複雑に見える問題も必ず追えます。
頻出のワナ(ここで失点する)
- 「値」と「位置(添字)」の取り違え:最大値を探す問題で、返すのが値なのか要素番号なのかを最後まで意識する。
- 「>」と「≧」の違い:同じ値が並んだとき、厳密な「>」なら更新されず、最初の要素が残る。等号の有無で答えが変わる。
- ループの境界:「1から n まで」なのか「2から」なのか、開始・終了の1つのズレが致命傷になる。
- 整数除算の切り捨て:
7 ÷ 2は 3。小数を残さない。
情報セキュリティ分野の対策
科目Bにはアルゴリズム以外に情報セキュリティも出ます。こちらは用語と典型的な対策の理解が中心で、 アルゴリズムより短期で得点源にしやすい分野です。認証・暗号・マルウェア・アクセス制御といった頻出テーマを、科目Aの学習と兼ねて押さえておきましょう。
練習のしかた
- まずはトレース表を紙に書き、確実に正解を出せるようにする
- 同じ型(探索・集計・整列など)の問題を繰り返し、パターンを体に入れる
- 慣れてきたら表を省略し、時間を計って「読み切る速さ」を鍛える
ただし科目Bは、IPAが公開している問題が全部で50問しかありません(本番およそ2.5回分)。 繰り返すうちに答えを覚えてしまうので、正答率は指標になりません。 入手できる問題の内訳と、少ない問題数で仕上げる進め方は 科目Bの過去問は50問だけで詳しく解説しています。
それでも科目Bだけ伸び悩むなら(必要な人だけ)
無料の練習問題と過去問で多くの人は十分戦えます。そのうえで「科目Bの読解だけがどうしても伸びない」人向けの、任意の補強策です。
よくある質問
科目Bはプログラミング経験がないと解けませんか?
特定の言語の経験は不要です。科目Bは共通の「擬似言語」で出題され、変数・代入・条件分岐・繰り返しといった基本を読み取れれば解けます。むしろ「1行ずつ正確に追う(トレース)」訓練の方が重要です。
トレースが苦手です。速くする方法は?
慣れが最大の近道です。まずは紙に変数の値の変化を書き出す「トレース表」で確実に追えるようにし、同じ型の問題を繰り返すうちに、頭の中だけで追えるようになっていきます。速さは正確さの後からついてきます。
情報セキュリティも科目Bで出ますか?
はい。科目Bはアルゴリズム・プログラミングが中心ですが、情報セキュリティ分野からも出題されます。用語と典型的な対策を押さえておけば得点源にしやすい分野です。最新の出題構成はIPA公式をご確認ください。
出典・ご注意
本記事・ツールの内容は執筆時点の情報にもとづく参考情報です。試験制度・日程・出題範囲は変更される場合があるため、受験の際は必ずIPA(情報処理推進機構)の公式情報をご確認ください。合否・学習成果を保証するものではありません。
最終更新日: