基本情報科目Bで擬似言語と情報セキュリティ、どちらから対策すべき?
基本情報技術者試験の科目Bを勉強するとき、多くの人が迷うポイントがあります。
擬似言語から対策すべきか。 それとも、情報セキュリティから対策すべきか。
擬似言語は難しそうだし、時間もかかりそうです。一方で、情報セキュリティは文章問題のように見えるので、先に得点源にしたくなる人も多いと思います。
結論からいうと、基本は擬似言語を先に始めるべきです。
ただし、情報セキュリティを後回しにしすぎるのも危険です。おすすめは、最初に擬似言語の学習を始め、途中から情報セキュリティを並行して進める形です。
この記事では、科目Bの擬似言語と情報セキュリティをどの順番で対策すべきかを初心者向けに解説します。
まずIPA公式情報で科目Bを確認しよう¶
勉強の優先順位を考える前に、まず科目Bの公式情報を確認しましょう。
IPA公式ページによると、基本情報技術者試験の科目Bは試験時間100分、出題形式は多肢選択式、出題数・解答数は20問です。
【参考】IPA 基本情報技術者試験
また、IPAの科目Bサンプル問題では、科目Bは「アルゴリズムとプログラミング」と「情報セキュリティ」の二つの分野で構成されると示されています。
同じ資料では、分野別の出題割合について、「アルゴリズムとプログラミング」が8割、「情報セキュリティ」が2割を想定しているとされています。
単純に20問で考えると、アルゴリズムとプログラミングが約16問、情報セキュリティが約4問というイメージです。
ただし、これはサンプル問題に記載されている想定割合です。実際の試験では、公開される問題も一部であり、学習では両方を対策する前提で考えたほうが安全です。
結論:先に擬似言語、途中から情報セキュリティを並行する¶
科目Bでどちらから対策すべきか。
迷ったら、まず擬似言語から始めるのがおすすめです。
理由はシンプルです。擬似言語は、読めるようになるまでに時間がかかるからです。
情報セキュリティは、用語や考え方を積み上げれば比較的短期間でも伸ばしやすい分野です。もちろん簡単という意味ではありませんが、擬似言語に比べると、学習の成果が見えやすい人が多いです。
一方で、擬似言語は文法を覚えただけでは得点につながりません。
変数の値を追う、配列の中身を見る、条件分岐や繰返しの流れを確認する、といった練習が必要です。つまり、慣れに時間がかかります。
だからこそ、試験日が近づいてから擬似言語を始めると危険です。
擬似言語を先に始めるべき理由¶
擬似言語を先に始めるべき理由は、出題割合だけではありません。
もちろん、IPAのサンプル問題でアルゴリズムとプログラミングが8割想定とされている点は大きいです。しかし、それ以上に重要なのは、擬似言語は短期間で急に読めるようになりにくいことです。
理由1:問題数の比重が大きい¶
科目Bの中心は、アルゴリズムとプログラミングです。
20問中の大半がこの分野だと考えると、擬似言語を後回しにするのはかなりリスクがあります。
情報セキュリティだけで高得点を狙うことはできません。科目B全体で安定して得点するには、擬似言語をある程度読める状態にしておく必要があります。
理由2:慣れるまで時間がかかる¶
擬似言語は、初見ではとても読みにくいです。
代入、配列、ループ、条件分岐、関数呼び出しが組み合わさると、どこから読めばいいかわからなくなります。
ただ、これは才能の問題ではありません。処理を追う練習をしていないだけです。
私でも、初めて読む複雑なコードは、いきなり全部を理解しようとはしません。入力と出力を見て、主役の変数を探し、値が変わる場所を確認します。
科目Bの擬似言語でも同じです。
理由3:時間切れに直結しやすい¶
擬似言語が苦手なままだと、試験本番で時間を使いすぎます。
1問に10分以上かけてしまい、後半の解ける問題に手が回らない。これは科目Bでよくある失敗です。
情報セキュリティ問題は文章量が多いこともありますが、擬似言語のように1行ずつ値を追う作業は少なめです。
つまり、時間管理の面でも、擬似言語の読み方を早めに身につける意味があります。
時間切れが不安な方は、以下の記事もあわせて確認してください。
【関連記事】基本情報技術者試験の科目Bで時間が足りない人へ|擬似言語問題を速く読むコツ
情報セキュリティを軽視してはいけない理由¶
擬似言語を先に始めるべきだとしても、情報セキュリティを軽視してよいわけではありません。
科目Bの情報セキュリティは、単なる用語暗記だけではなく、状況を読んで適切な対策やリスクを判断する問題が出ます。
IPAの科目Bサンプル問題セットでも、Webサイトの脆弱性、PaaS、DBMS、委託先との責任分担など、実務に近い状況設定の問題が見られます。
情報セキュリティは得点源にしやすい¶
情報セキュリティは、初心者でも対策しやすい分野です。
脅威、脆弱性、リスク、認証、アクセス制御、バックアップ、ログ監視、マルウェア対策など、出題されやすいテーマが比較的整理しやすいからです。
また、科目Aの学習内容ともつながります。科目Aでセキュリティ用語を学んでいる人は、科目Bの情報セキュリティにも入りやすいです。
ただし丸暗記では危険¶
情報セキュリティは用語を覚えるだけでは不十分です。
たとえば、脆弱性という言葉を知っていても、誰が対策すべきなのか、どの対策が適切なのかを判断できなければ得点につながりません。
科目Bでは、文章を読み、状況を整理し、最も適切な選択肢を選ぶ力が必要です。
つまり、情報セキュリティも読解問題です。
擬似言語が処理の読解だとすれば、情報セキュリティは状況の読解です。
擬似言語と情報セキュリティの違い¶
どちらから始めるべきかを考えるには、二つの分野の違いを知ることが大切です。
同じ科目Bでも、求められる力は少し違います。
| 比較項目 | 擬似言語・アルゴリズム | 情報セキュリティ |
|---|---|---|
| 主な力 | 処理を順に追う力 | 状況を読んで判断する力 |
| 伸びるまでの時間 | 比較的かかる | 比較的短期で伸ばしやすい |
| 苦手になりやすい点 | 変数、配列、ループ、関数 | 用語、責任分担、対策選び |
| 学習方法 | トレース、演習、解き直し | 用語理解、事例問題、選択肢比較 |
| 後回しのリスク | 非常に大きい | 得点源を逃す |
| おすすめ開始時期 | 最初から | 擬似言語の基礎と並行して早めに |
この表を見ると、擬似言語と情報セキュリティは対立するものではありません。
どちらも必要です。ただし、擬似言語は習得に時間がかかるため、先に着手する価値が高いです。
おすすめの学習順¶
では、実際にはどのような順番で勉強すればよいのでしょうか?
初心者におすすめなのは、擬似言語を先に始め、途中から情報セキュリティを週に数回入れる形です。
最初の1〜2週間:擬似言語の基礎に集中¶
最初は、擬似言語の短い問題に集中しましょう。
文法を細かく暗記するというより、処理の流れを追う練習をします。代入、条件分岐、繰返し、配列の基本的な動きを、短いコードで確認します。
この段階では、長い科目B形式の問題にいきなり挑戦しなくても大丈夫です。
まずは、短いコードを読んで、何が起きているか説明できる状態を目指します。
擬似言語の基本的な学習ステップは、以下の記事で詳しく解説しています。
【関連記事】擬似言語の勉強方法とは?IT初心者でも無理なく身につく学習ステップを解説
3週目以降:情報セキュリティを並行する¶
擬似言語の短い問題に慣れてきたら、情報セキュリティを並行して進めます。
たとえば、平日は擬似言語を中心にして、週2回だけ情報セキュリティの事例問題を解く。あるいは、擬似言語を30分、情報セキュリティを15分のように分けてもよいです。
大切なのは、情報セキュリティを直前まで放置しないことです。
用語を覚えるだけでなく、文章を読んで適切な対策を選ぶ練習が必要だからです。
直前期:情報セキュリティで取りこぼしを減らす¶
試験直前期は、情報セキュリティの見直しもかなり重要です。
擬似言語の難問を無理に増やすより、情報セキュリティの基本テーマを確認したほうが得点が安定することがあります。
直前に確認したいテーマは、脆弱性、マルウェア、認証、アクセス制御、バックアップ、ログ監視、委託先やクラウド利用時の責任分担などです。
情報セキュリティは、知識の抜けがそのまま失点につながりやすいので、最後に整理しておきましょう。
擬似言語は処理を追う練習が必要¶
ここで、擬似言語がなぜ早めの対策に向いているのかを、短いサンプルで確認しましょう。
次のコードは、配列の中で基準値以上の値を数える処理です。基本情報技術者試験の科目Bで使われる擬似言語の記述形式に寄せています。
○整数型: countOver(整数型の配列: data, 整数型: border)
整数型: count ← 0
整数型: i
for (i を 1 から dataの要素数 まで 1 ずつ増やす)
if (data[i] ≧ border)
count ← count + 1
endif
endfor
return count
このコードを読むときは、countがいつ増えるかを見ます。
たとえば、data = {40, 80, 60, 30}、border = 60の場合、60以上の値は80と60の二つです。戻り値は2になります。
表にすると、次のように追えます。
| i | data[i] | data[i] ≧ border | count |
|---|---|---|---|
| 初期 | - | - | 0 |
| 1 | 40 | 偽 | 0 |
| 2 | 80 | 真 | 1 |
| 3 | 60 | 真 | 2 |
| 4 | 30 | 偽 | 2 |
このように、擬似言語は書かれている処理を順番に追う必要があります。
一度コツをつかめば読めるようになりますが、慣れるまでは時間がかかります。だから、先に始める意味があります。
情報セキュリティは状況整理が大切¶
情報セキュリティでは、コードを追うよりも、状況を整理する力が重要です。
たとえば、次のような問題を考えてみましょう。
ある会社がECサイトを運営している。サイトはクラウド事業者のPaaS上で稼働し、Webアプリケーションの開発と運用は外部会社に委託している。診断の結果、Webアプリケーションにクロスサイトスクリプティングの脆弱性が見つかった。
このとき、まず考えるべきなのは、誰が何を管理しているかです。
PaaSの基盤やOSに関する問題なのか。Webアプリケーションの実装に関する問題なのか。利用者の操作や運用ルールに関する問題なのか。
情報セキュリティでは、用語だけでなく、責任範囲や対策の対象を見分ける必要があります。
| 見るポイント | 具体例 |
|---|---|
| 資産 | 個人情報、会員情報、業務データ |
| 脅威 | 不正アクセス、マルウェア、情報漏えい |
| 脆弱性 | 設定不備、既知の脆弱性、XSS |
| 対策 | パッチ適用、入力値の無害化、アクセス制御 |
| 責任範囲 | 自社、委託先、クラウド事業者 |
情報セキュリティは、擬似言語とは違う読み方が必要です。
ただし、慣れると得点源にしやすい分野でもあります。
学習時間別の優先順位¶
勉強できる期間によって、優先順位は少し変わります。
ここでは、試験までの残り時間ごとに考えてみます。
| 試験までの期間 | 優先順位 | 学習方針 |
|---|---|---|
| 2か月以上 | 擬似言語を先に開始 | 基礎からトレースを積み上げる |
| 1か月 | 擬似言語中心+情報セキュリティ並行 | 擬似言語7、セキュリティ3くらい |
| 2週間 | 擬似言語の頻出型+セキュリティ基礎 | 難問より取りこぼし防止 |
| 1週間 | セキュリティ見直し+擬似言語の解き直し | 新規問題を増やしすぎない |
| 前日 | 用語確認とミスパターン確認 | 不安を増やす難問は避ける |
時間があるなら、擬似言語をしっかり積み上げましょう。
時間が少ないなら、擬似言語の頻出パターンと情報セキュリティの取りこぼし防止に絞るのが現実的です。
私ならどう対策するか¶
私が今から科目Bを受けるとしても、最初に擬似言語を始めます。(私自身は10年前に基本情報を取得しています)
理由は、擬似言語は読めるようになるまでに慣れが必要だからです。コードを読む力は、参考書を眺めるだけでは伸びません。
実務でも、コードを読めるようになるには手を動かすしかありません。変数の値を追い、入力と出力を確認し、処理の目的を言葉にします。
これは科目Bでも同じです。
一方で、情報セキュリティは短期で整理しやすいです。私は直前期に、脆弱性、認証、アクセス制御、ログ、バックアップ、責任分担のようなテーマを表で見直します。
つまり、最初は擬似言語、途中から情報セキュリティ、直前期は両方のミスを確認する流れが現実的です。
まとめ:先に擬似言語、情報セキュリティは早めに並行しよう¶
基本情報技術者試験の科目Bでは、擬似言語と情報セキュリティのどちらも重要です。
ただし、優先順位をつけるなら、先に始めるべきなのは擬似言語です。
IPAのサンプル問題では、科目Bの分野別出題割合として、アルゴリズムとプログラミング8割、情報セキュリティ2割が想定されています。さらに、擬似言語は読めるようになるまでに時間がかかります。
だから、擬似言語を後回しにするのはおすすめしません。
一方で、情報セキュリティを軽視するのも危険です。
情報セキュリティは、科目Aの知識ともつながりやすく、対策すれば得点源にしやすい分野です。用語を覚えるだけでなく、状況を整理して判断する練習をしましょう。
おすすめの流れは、最初に擬似言語を始め、短いコードを読めるようになってきたら情報セキュリティを並行することです。
科目Bは、どちらか一方だけで突破する試験ではありません。
まずは擬似言語を少しずつ読み、情報セキュリティを得点源に育てていきましょう。