見出し画像

基本情報技術者試験:科目B対策まとめ【最新版】

基本情報技術者試験の科目Bについて、受験前に知っておきたかった情報をまとめました。これから受験される方の参考になれば幸いです。

以下の情報をまとめています。
✔︎科目Bに関する情報
✔︎練習問題のリンク一覧(サンプル問題ほか)
✔︎基本的なアルゴリズム
✔︎アルゴリズムに関連する基礎知識
✔︎変数名に使用される英単語やその略称の一覧
✔︎おすすめの解説動画・Webサイト


科目Bの概要

科目Bではアルゴリズム(16問)とセキュリティ(4問)の計20問が出題されます。制限時間は100分です。

アルゴリズム

アルゴリズム問題では、擬似言語で書かれたプログラムを元に、プログラムの空欄を埋めたり、関数の実行結果を問う設問が出題されます。

出題例(出典:基本情報技術者試験 科目B試験サンプル問題

セキュリティ

セキュリティ問題では、情報セキュリティの基礎知識が問われます。基本的なセキュリティ知識があれば解ける内容です。

【補足】2023年4月から試験は通年受験となり、「午後試験」は「科目B」にリニューアルされました。出題される内容も大幅に改訂されたため、「午後試験」の過去問を解かないようにご注意ください。

科目Bの勉強方法

科目Bで重要なのはトレースです。
トレースとはプログラムを1行1行追っていく作業のことです。変数の値の変化をしっかり押さえる必要があります。

トレース表の例(出典:オリジナルの問題

科目Bは基本的にトレースさえできれば解けるようになっています。ただし、アルゴリズムを理解していれば解く時間を節約できることがあります。そのため、基本的なアルゴリズムをあらかじめ押さえておくことが大切です。

①アルゴリズムを押さえる
②問題を繰り返し解いてトレースに慣れる

この2点をマスターすればOKです!

【📕科目B対策に参考書は必要?】
→不要です。科目Aに加えて新たにもう1冊参考書を増やすと負担が大きくなります。科目Aで基本的なアルゴリズムを理解したのち、以下の練習問題を繰り返し解けば十分です。

科目Bの練習問題

科目Bが導入されてからは過去問がそのまま公開されることは無くなりました。練習問題が不足しているため、以下のサンプル問題と過去問の抜粋を解くことをお勧めします(計47問)。


公式サンプル問題①(全6問)

問題冊子&解答例のPDF
参照先:https://www.ipa.go.jp/shiken/syllabus/henkou/2022/20220425.html


公式サンプル問題②(全20問/100分)

問題冊子のPDF
解答例のPDF
参照先:https://www.ipa.go.jp/shiken/syllabus/henkou/2022/20221226.html


公式令和5年過去問抜粋①(全6問)

問題冊子のPDF
解答例のPDF
参照先:https://www.ipa.go.jp/shiken/mondai-kaiotu/sg_fe/koukai/2023r05.html


Youtubeの解説動画(全10問)

これは「エンジニア養成コーチ:IT学校さいとうさん」様のチャンネルの動画です。(https://youtube.com/@itgakko

科目Bに準拠したオリジナルの問題を公開・解説されています。非常に勉強になるのでお勧めです。私もこの方の問題を繰り返し解きました。

(個人的な感想として、第9問と第10問は難しいので解けなくても問題ないと思います。また、本番よりもやや難しめに作られているため、トレースに時間がかかったとしてもあまり気にする必要はないと思います。)


オリジナル問題(全5問)

せっかくなので私も5問作成してみました。
もし良ければ解いて見てください!

各練習問題を解く順番として、サンプル問題(20問/100分)を最後に解くのがオススメです。本番と同じ問題量・制限時間を体験できるのはこれが唯一だからです。他は好きな順番で良いと思います。

練習を解く前に

練習問題は数が少ないため、準備不足の段階で解いてしまうのは勿体無いです。そのため、以下のアルゴリズム・基礎知識を理解した上で取り組むことをお勧めします。

基本的なアルゴリズム

重要なアルゴリズムは以下の通りです。
なお、アルゴリズムについて詳しく解説されている方のリンクをつけさせていただいております。

・基本交換法(バブルソート)
・基本選択法(選択ソート)
・基本挿入法(挿入ソート)
・改良挿入法(シェルソート)
・クイックソート【アルゴリズム例:こちら
・マージソート【アルゴリズム例:こちら
・ヒープソート【アルゴリズム例:こちらこちら
・線形探索法
・2分探索法

基礎知識+α

ざっと思いつく範囲でまとめました。
忘れてしまった方は参考にしてください。

①素数
素数は1とその数以外に正の約数を持たない2以上の自然数のことです。例えば、2, 3, 5, 7などがあります。

②約数
約数はある数を割り切ることができる数のことです。例えば、6の約数は1, 2, 3, 6です。

③倍数
倍数はある数を整数倍した数のことです。例えば、3の倍数には3, 6, 9, 12などがあります。

③階乗
階乗は、1からその数までの全ての自然数の積です。記号でn!と表され、例えば5! = 5 × 4 × 3 × 2 × 1 = 120となります。階乗の求め方は、対象となる数から1まで順に掛け算を行います。

④ルート(√)
ルートは平方根を表す記号です。√aと表記した場合、これはある数の2乗がaに等しくなるような数のことです。例えば√9 = 3です。また、指数での表記を用いると、平方根はa^1/2 (=aの1/2乗)と表されます。

⑤ユークリッドの互除法
ユークリッドの互除法は、2つの自然数(または整数)の最大公約数(GCD)を求めるアルゴリズムです。この方法では、大きい数を小さい数で割り、その次に小さい数を余りで割ることを余りが0になるまで繰り返します。最後に割った数が最大公約数になります。例えば、252と105のGCDを求めるには、252を105で割り、余り147を得ます。次に105を147で割り、余り105を得ます。最後に147を105で割り、余り42を得ます。105を42で割り、余りが0になるので、42がGCDです。
なお、引き算の繰り返しによっても求めることができます過去問(科目A)でそのアルゴリズムが出題されていますので気になる方は確認してみてください。

⑥うるう年の求め方
うるう年は、グレゴリオ暦において「4で割り切れる年」かつ「100で割り切れない年」です。ただし、「400で割り切れる年」はうるう年です。うるう年では2月に29日があります。例えば、2020年は4でのみ割り切れるためうるう年です。1900年は4だけでなく100でも割り切れるためうるう年ではありませんが、2000年は400で割り切れるためうるう年です。

⑦単利と複利
単利と複利は、投資や貯蓄における利息の計算方法に関する概念です。
単利は元本にのみ利息が発生します。計算式は将来価値=元本×(1+利率×時間)です。元本に比例して増加します。

aは元本の100万円、rは利子率の0.03、nは年数

複利は元本とそれまでに発生した利息にも利息が発生します。計算式は将来価値=元本×(1+利率)^時間です。時間が経つにつれて利益が指数関数的に増加します。

aは元本の100万円、rは利子率の0.03、nは年数

オブジェクト指向の理解

オブジェクト指向もしっかり理解する必要があります。勉強するにあたっては以下の動画が非常に分かりやすいです。模擬問題を解く前に視聴されることをお勧めします。

「【基本情報技術者試験YouTuber】すーさん」様の動画です。
https://youtube.com/@kihonzyouhou

この方の動画のおかげでオブジェクト指向を理解できました。他の動画もわかりやすくて勉強になるのでお勧めです。
noteのアカウントはこちらです。

変数で使用される英単語・略語

変数などで使用される英単語の意味を押さえておくとアルゴリズムを理解しやすいです。

代表的な英単語や略語を以下に書いておきます。

int:「整数」(integerは整数)
str:「文字列」(stringは文字列)
pivot:「基準値」
temp:「一時保存用」(temporaryは一時的)
tail:「最後」(tailはしっぽ)
pow:「累乗」(powerは累乗)
sum:「合計」
count:「数・数える」
curr:「今」(currentは現在)
prev:「前」(previousは以前)

科目Bの解く順番・時間配分

セキュリティ(15分)→アルゴリズム(85分)

セキュリティ問題は、最初の10〜15分で全4問に解答することを目安にしてください。比較的簡単なため、先に解いてしまうのが無難です。

アルゴリズム問題は、簡単な問題は1〜3分で、標準問題は5分で、難問は7〜10分を目安に解くことをお勧めします。なお、後半の問題の方が難易度が高い傾向があります。

難問は後回しにしてください。見かけ倒しの問題もありますが、問題文が長い場合やプログラムが複雑な場合は飛ばすのが無難です。

【補足】
科目Bでは20問のうち1問はダミー問題です。ダミー問題は今後の問題作成の参考にするために設けられた問題であり、採点対象ではありません
したがって、アルゴリズムの難問が出題された場合、ダミー問題である可能性があります。やはり難問は後回しにするのが賢明です。

試験を受ける際の注意点

早めに受験予約する

会場の枠が埋まる可能性があるため、早めに受験予約することをお勧めします。

本人確認書を持参する

本人確認書を持っていく必要があります。

試験当日の流れを把握する

科目Aの試験前にボールペンとA4の計算用紙1枚が配布されます。科目Aが終わったタイミングで計算用紙が回収され、新しい計算用紙が配布されます。科目Aと科目Bの間に、休憩時間が最大10分あります。
計算用紙が足りなくなった場合はスタッフの方から追加でもらうことができます。

試験終了と同時にパソコン上に評価点が表示されます。科目A・科目Bともに600点を超えていれば合格です。2〜3時間後にスコアをWebサイトでも確認することができます。

再受験の制約を確認する

1回受験すると30日間は再受験できないという制限があります。

詳細は公式ページをご確認ください。

おまけ:最新の合格率推移(2023年4月~2024年1月)

(https://www.ipa.go.jp/shiken/reports/toukei_fe.htmlより作成)

受験した感想

「文系」「プログラミングほぼ未経験」という状態でも、合計50~60時間の勉強で合格できました。効率的に進めるポイントは、①参考書(1冊だけ)を極めることと、②科目Bの問題集をたくさん解くことです。
私が使用した参考書は「栢木先生の基本情報技術者教室」です。説明が分かりやすく、掲載されている過去問も良問でした。参考書を極めれば、科目A対策に過去問道場をたくさん解かなくても良い気もします。

個人的には科目Bのアルゴリズムが大変でしたが、サンプル問題とYoutubeの解説動画のおかげで合格できました。投稿者の方々ありがとうございました。無料で高質な教材にたどり着けて素晴らしい時代です。

受験されるみなさん、頑張ってください!
陰ながら応援しています。

この記事が気に入ったらサポートをしてみませんか?