基本情報技術者試験の勉強法|科目Aと科目Bの進め方を順番に解説
基本情報の勉強、結局どう進めるのが正解なんだろう。
参考書を買ったあと、1ページ目で手が止まっていませんか?
範囲が広く、科目Aと科目Bで中身も違う。何をどの順番でやるのか決まらないまま、日付だけが進んでしまう人は本当に多いです。
先に結論をお伝えします。基本情報の勉強法は、科目Aと科目Bをまったく別の試験として扱うところから始まります。
私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。新人研修で基本情報の受験を勧める側にも、実際につまずいた人の相談を受ける側にも立ってきています。
そこで何度も見たのは、真面目な人ほど科目Aのテキストを丁寧に読み込み、科目Bに入る前に息切れするという光景でした。順番と配分を最初に決めておけば、避けられた失速です。
この記事では、試験の形から逆算した勉強の進め方を、段階ごとに順を追って説明していきます。
基本情報の勉強法は、試験の形から決まる¶
やり方を決める前に、まず相手の形を知っておきましょう。ここを飛ばすと、力を入れる場所を間違えます。
基本情報技術者試験は、科目Aと科目Bの2つで構成されています。どちらも通年で実施されるCBT方式で、パソコンの画面上で解答する形式です。
科目Aと科目Bは別の試験だと考える¶
2つの科目は、問われている力がそもそも違います。科目Aは知識、科目Bは考える手順を見られる試験です。
概要を表にまとめました。数字はIPAが公開している試験要綱に沿ったものです。
| 項目 | 科目A | 科目B |
|---|---|---|
| 出題数 | 60問 | 20問 |
| 試験時間 | 90分 | 100分 |
| 出題形式 | 四肢択一 | 多肢選択 |
| 中心となる内容 | テクノロジ・マネジメント・ストラテジの知識 | アルゴリズムと擬似言語、情報セキュリティ |
| 合格の基準 | 1,000点満点で600点以上 | 1,000点満点で600点以上 |
見てのとおり、両方で600点を超えないと合格になりません。片方だけ得意でも通らない試験だということです。
そして時間の使われ方に注目してください。科目Bは20問しかないのに、科目Aより長い100分が与えられています。
これは、1問に時間をかけて読み解く試験だという意思表示でしょう。暗記で押し切れる科目ではないのです。
なお採点はIRTと呼ばれる方式で行われるため、単純に6割正解すれば600点になるとは限りません。何割という感覚より、確実に解ける問題を増やすほうが安全です。
勉強時間の配分は科目Bに寄せる¶
出題数だけを見ると、60問ある科目Aのほうが重く見えます。ただ、初心者がつまずいて落ちるのはほとんどが科目Bです。
理由ははっきりしていて、科目Aは知らなければ調べて覚えれば進みますが、科目Bは知識を入れても読めるようにはならないからです。読む練習の時間そのものが必要になります。
そのため、勉強時間は科目Bに厚く配るのが基本です。半々ではなく、科目Bに6割ほど寄せるくらいでちょうどよいと考えてください。
どちらから手を付けるかで迷っている場合は、順番だけを扱った記事もあります。
【関連記事】基本情報は科目AとB、どっちから勉強する?先に科目Bと言い切る理由について解説!
勉強法の全体像|4つの段階を順番に進める¶
全体の地図を先に見ておきましょう。地図があるだけで、いま何をしているのかが分からなくなる状態を防げます。
進め方を4つの段階に分けました。各段階でやることを一つに絞ってあります。
| 段階 | やること | 終わりの合図 |
|---|---|---|
| 1 | 試験の形と擬似言語の記法を知る | コードの記号の意味が分かる |
| 2 | 科目Bの短いコードをトレースする | 3行程度の処理を紙で追える |
| 3 | 科目Aの知識を過去問で入れる | 分野をまたいで6割前後を取れる |
| 4 | 通しで解いて時間感覚を作る | 100分で20問を回し切れる |
順番に意味があります。段階1と2を先に置いているのは、擬似言語に慣れるまでに時間がかかるからです。
早く始めれば、それだけ触れる回数が増えます。科目Aは後半で一気に伸ばせるので、後ろに回して問題ありません。
試験そのものをまだつかめていない人は、入口を整理した記事から読むと迷いが減ります。
【関連記事】基本情報技術者試験は何から勉強する?初心者向けの始め方
科目Aの勉強法|広く浅く、繰り返しで固める¶
段階3にあたる科目Aの進め方を見ていきます。ここは効率よく回すことがすべてです。
科目Aの範囲は、コンピュータの仕組みからネットワーク、データベース、プロジェクト管理、経営戦略まで広がっています。全部を深く理解しようとすると、まず終わりません。
テキストは1周目で完璧にしない¶
いちばん多い失敗が、1周目で理解しきろうとして途中で力尽きるパターンです。私が相談を受けた人の半分近くは、これで止まっていました。
テキストは、分からない箇所を残したまま最後まで進めてください。2周目、3周目で拾えばよいのです。
同じ用語には、後の分野でまた出会います。二度目に見たときの理解のほうが、一度目より深くなるものです。
過去問は分野をまたいで回す¶
知識を定着させる主役はテキストではなく、過去問です。読んで覚えるより、問われて思い出すほうが記憶に残ります。
このとき、分野ごとにまとめて解くのは1周目までにしましょう。2周目からは分野を混ぜて解いたほうが、本番に近い形になります。
科目Aは同じ論点が形を変えて繰り返し出る試験です。何年分かを回していると、見覚えのある問題が増えていきます。
間違えた問題には印を付け、翌日にもう一度解いてください。その日のうちに解き直すより、少し時間を空けたほうが定着します。
計算問題は捨てずに型だけ覚える¶
科目Aには、基数変換や稼働率のような計算問題も混ざります。文系出身の人ほど、ここで手が止まりやすいところです。
ただ、出題される計算の型はそれほど多くありません。解き方の手順を一度覚えてしまえば、数字が変わっても同じ流れで解けます。
苦手だからと丸ごと飛ばすのはもったいない選択です。頻出の数問だけでも型を押さえておくと、得点が安定します。
科目Bの勉強法|擬似言語は読む練習でしか伸びない¶
ここが本題です。多くの人が最後まで苦しむのが、科目Bの擬似言語問題でしょう。
科目Bで出るのは、アルゴリズムと情報セキュリティです。配分としてはアルゴリズムのほうが多く、擬似言語で書かれたコードを読む力が直接得点になります。
科目Bという科目そのものの全体像は、専用の記事で詳しく解説しています。
【関連記事】基本情報技術者試験の科目Bとは?擬似言語・アルゴリズム対策を初心者向けに解説
トレース表で値を追う¶
擬似言語は、眺めていても読めるようになりません。変数の値を書き出す練習を挟んで、はじめて追えるようになります。
たとえば、配列の中の最大値を求める処理を見てみましょう。
○整数型: saidai(整数型の配列: data)
整数型: max ← data[1]
整数型: i
for (i を 2 から data の要素数 まで 1 ずつ増やす)
if (data[i] > max)
max ← data[i]
endif
endfor
return max
このコードを目で追って納得しただけでは、本番では手が止まります。実際に値を入れて、1行ずつ書き出してみてください。
data が {3, 9, 4} のときの動きを表にしました。
| 時点 | i | data[i] | 比較の結果 | max |
|---|---|---|---|---|
| 開始時 | ― | ― | ― | 3 |
| 1回目 | 2 | 9 | 9 > 3 なので真 | 9 |
| 2回目 | 3 | 4 | 4 > 9 なので偽 | 9 |
| 終了 | ― | ― | ― | 9 |
この表を書くのに1分もかかりません。それでも、頭の中だけで追うのとは正確さがまるで違います。
実務でも同じことをしています。私は不具合を追うとき、いまだにログに値を出して1行ずつ確認します。
頭の中で処理を追い切れる人など、そう多くありません。表に書き出すのは初心者の甘えではなく、確実な手順なのです。
トレース表の書き方そのものに不安がある人は、書き方を解説した記事も参考にしてください。
【関連記事】擬似言語のトレース表の書き方|科目Bで変数の値を追う手順を解説
情報セキュリティは短期で取り切る¶
科目Bのもう一つの柱が情報セキュリティです。こちらはアルゴリズムと違い、知識で解ける問題が多く含まれます。
つまり、短期間で点数に変えやすい領域だということです。擬似言語に時間を使うためにも、ここは早めに固めてしまいましょう。
科目Aのセキュリティ分野と内容が重なる部分もあるので、まとめて学習すると効率が上がります。
科目Bの詳しい進め方¶
科目Bの勉強法だけで一本の記事になるほど、やることは多いです。順番と教材の使い方をまとめた記事を用意しています。
【関連記事】基本情報技術者試験 科目Bの勉強法|初心者が合格までにやることを順番に解説
つまずいたときの直し方¶
進めていると、必ずどこかで止まります。止まること自体は問題ではなく、原因を取り違えることが問題です。
よくある状態と、そのときの対処を表にまとめました。自分に当てはまる行を探してみてください。
| つまずいている状態 | 本当の原因 | 次にやること |
|---|---|---|
| コードの意味が分からない | 記法をまだ覚えていない | 記号と書式の一覧を確認する |
| 読めるが答えが合わない | 値を頭の中で追っている | トレース表を必ず書く |
| 時間内に解き終わらない | 読み直しが多すぎる | 変数の宣言から順に読む型を作る |
| 科目Aが伸びない | インプット偏重 | 過去問を解く時間を増やす |
| やる気が続かない | 目標が遠すぎる | 1日1問だけ解く形にする |
どの行も、努力の量ではなくやり方の問題です。量を増やす前に、やり方を一つ変えてみてください。
私自身、新人がコードを読めないと言うとき、たいていは能力ではなく手順の問題でした。読む順番を決めてあげるだけで、翌週には別人のように追えるようになります。
とくに最後の行は軽く見られがちですが、継続できるかどうかが合否を分けます。1日1問でも、触れない日を作らないほうが結果的に速いです。
直前期は新しいことを始めない¶
試験日の2週間前くらいからは、進め方を切り替えましょう。ここで新しい教材に手を出すのは危険です。
やることは3つに絞られます。解いた問題の解き直し、間違えた論点の確認、そして時間を計った通し練習です。
科目Bは100分で20問なので、1問あたり5分が平均になります。実際には簡単な問題を3分で終わらせ、重い問題に8分使うといった配分になるでしょう。
この感覚は、時間を計って解かないと身につきません。直前期に一度は通しで解いておいてください。
そして本番では、分からない問題に固執しないことです。1問に10分かけるより、残りを確実に取るほうが合格に近づきます。
前日にやることも決めておくと、当日の朝に慌てずにすみます。新しい問題は解かず、印を付けた論点を眺めるだけで十分です。
睡眠を削って詰め込むより、頭が動く状態で会場に着くほうが点になります。ここまで積み上げてきたものは、一晩で消えたりしません。
手を動かす場所を用意しておく¶
勉強法を整えても、動かす場所がないと擬似言語は身につきません。紙のトレースに加えて、実際に動く環境があると理解が速くなります。
Giji Academy では、擬似言語のコードを画面上で動かしながら学べます。値がどう変わるかを目で見られるので、トレースの答え合わせに使えます。
自分の書いた表と画面の値がそろったとき、読めているという確信が持てるはずです。まずは短いコードから試してみてください。
学習を始める場所はこちらから選べます。
まとめ¶
最後に、この記事の要点を振り返っておきます。
基本情報の勉強法は、科目Aと科目Bを別の試験として扱うところから始まります。科目Aは知識を繰り返しで固め、科目Bは擬似言語を読む練習で伸ばす、というように中身が違うからです。
進め方は4段階でした。試験の形と記法を知り、短いコードをトレースし、科目Aを過去問で固め、最後に時間を計って通す。
時間配分は科目Bに寄せてください。落ちる原因の多くは科目Bにあり、そこは慣れるまでに時間がかかる場所だからです。
そして擬似言語は、表に書き出しながら読むのが確実な道です。実務でも同じことをしているのですから、遠回りではありません。
範囲は広いですが、順番さえ決まれば1日ごとにやることは1つになります。今日は最大値を求めるコードのトレース表を、1枚書いてみるところからでどうでしょうか。
その1枚が、合格までの一番確かな一歩になります。