科目B:擬似言語のトレースと情報セキュリティ
科目Bは、基本情報技術者試験(FE)の20問・100分の四択である。中心はIPAが公表する擬似言語で書かれたアルゴリズムとプログラミングの読解で、配列・スタック・キュー・探索・整列・再帰、変数のスコープ、関数呼び出しを正確に追う力が問われる。情報セキュリティも出題され、脆弱性・攻撃・対策をコードや設定の文脈で判断する。コードを丸暗記せず、状態を表にしながら実行する。
トレースの基本
- 初期化を先に書き、ループごとに全変数の値を更新する。前の値を消さない。
- ループの継続条件と終了条件を分け、境界値(0、1、n、n+1)を必ず確認する。
- 配列の添字の起点は問題文の宣言・注記に従う。0始まりと決めつけない。
- 関数は引数、ローカル変数、戻り値、呼び出し後の値の4点を分けて記録する。
- セキュリティは、入力値検証、認証と認可、暗号化とハッシュ、SQLインジェクションなどの対策を「何を防ぐか」で結びつける。
実行例
次の擬似言語を考える。
sum ← 0
for i ← 1 to 4
if i mod 2 = 0 then
sum ← sum + i
endif
endfor
i=1では条件が偽でsumは0のまま、i=2で真になりsum=0+2=2、i=3は偽、i=4で真になりsum=2+4=6となる。ループ終了後のsumは6である。各反復で「条件判定→更新」の順を守り、更新後の値を次の反復に持ち越すことが要点である。
失点しやすい罠
ループ内で更新した変数を初期値に戻してしまう、ifとelseの対応を一段ずらす、配列の範囲外参照を見落とす、再帰の終了条件を確認しない、ハッシュを暗号化と同一視する、などで落とす。時間があるように見えても、トレース表を省略すると取り違えが連鎖する。