基本情報技術者試験はアルゴリズムが鍵?
2023年4月(令和5年度)から通年試験に移行した基本情報技術者試験。
そんな基本情報技術者試験に対するネガティブな声の中には「アルゴリズムが難し過ぎる」「アルゴリズムを理解できない、意味不明」といったものがあり、アルゴリズムに対する忌避感が強いようです。しかし、アルゴリズムは必須問題なため、これを捨てる選択肢はないと考えましょう。
基本情報技術者試験に合格するには、このアルゴリズムの克服が大きな鍵になります。確かに、システムエンジニアやプログラマーの経験がない初心者にとってアルゴリズムは難しく感じますが、逆に考えれば「アルゴリズムを制すれば、基本情報技術者試験を制する」とも言えます。
ここではアルゴリズムから逃げず、アルゴリズムが得意になる方法などをお伝えしていきます。
基本情報技術者試験におけるアルゴリズム問題の割合
基本情報技術者試験に合格するには、科目A試験・科目B試験ともに60%の正答率が必要です。科目A試験は90分で、四肢択一形式の60問です。科目B試験は100分で、多肢選択式の20問です。どちらの試験でも「アルゴリズムとプログラミング」というカテゴリで、アルゴリズム問題が出題されます。
2022年12月26日にIPAが公開したサンプル問題において、「アルゴリズムとプログラミング」問題の割合は以下の通りでした。
科目A試験:60問中5問
科目B試験:20問中16問
特に科目B試験では、アルゴリズムとプログラミング分野が大きな割合を占めています。このことから、アルゴリズムを克服することが基本情報技術者試験に合格する鍵だということが分かります。
【参考】:IPA 独立行政法人 情報処理推進機構:基本情報技術者試験 【参考】:情報処理技術者試験・情報処理安全確保支援士試験 試験要綱 【参考】:基本情報技術者試験、情報セキュリティマネジメント試験の通年試験に関するお知らせ
基本情報技術者試験で出題されるアルゴリズム問題の範囲
アルゴリズム問題は、科目A試験・科目B試験ともに「アルゴリズムとプログラミング」というカテゴリで出題されています。必要な知識として「整列、併合、探索、再帰、文字列処理、流れ図の理解、アルゴリズム設計など」と明記されています。
さらに、「再帰、スタック、キュー、木構造、グラフ、連結リスト」など、データ構造を含めたプログラミング全般が出題範囲です。
【参考】:情報処理技術者試験・情報処理安全確保支援士試験 試験要綱
基本情報技術者試験のアルゴリズム問題の受け止め方
ここまで述べてきたことを改めて確認しておきましょう。
1.アルゴリズムは科目A試験・科目B試験ともに必須問題のため回避はできない 2.特に科目B試験では割合が多いので、ここで得点できれば合格が見えてくる 3.アルゴリズムに苦手意識を持った受験生とは、ここで差がつく
そもそもアルゴリズムとは
アルゴリズムとは、ざっくり言えば「やり方」のことです。もう少し詳しく言うと、「手順や計算方法」を意味する言葉です。ここでは、アルゴリズムに対するアレルギーを払拭するために、分かりやすくかみ砕いて説明していきます。
アルゴリズムはコンピュータに対する手順書
「アルゴリズム」はコンピュータに仕事をさせるための手順や計算方法を意味します。しかし、その手順や方法は1つだけではありません。コンピュータに同じ仕事をさせるなら、より優れたアルゴリズムを見出すことが求められます。
良いアルゴリズムはコンピュータに良い仕事をさせる元となるからです。
アルゴリズムとプログラムの違い
「アルゴリズムはコンピュータに仕事をさせる手順」。そう聞くと多くの人がプログラムを思い浮かべますが、アルゴリズムとプログラムは別ものです。アルゴリズムだけではコンピュータは仕事をしてくれません。コンピュータには指示書が必要で、その指示書がプログラムです。
さらにその指示書を作るための言語が、プログラミング言語です。
ただし、プログラミング言語は人が理解できるように作られていますが、コンピュータは機械語しか理解できないため、プログラミング言語は動作する際に機械語へ翻訳されます。
以上を図式化してみましょう。
アルゴリズム(手順書)→プログラム(指示書)→機械語(実行命令)→コンピュータ処理
効率が大幅アップ!代表的なアルゴリズムの「二分探索法」
探索法アルゴリズムの代表的なものに「二分探索法」があります。たとえば、ある人の年齢を当てるとします。1歳から1つずつ順番に尋ねていく方法だと、その人の年齢が60歳の場合は60回質問しなければなりません。
一方「二分探索法」では、年齢を真ん中で切って「30歳よりも上か下か?」というように聞いていきます。この方法だと、質問回数は10分の1ほどで済みます。このように、アルゴリズム次第で仕事の効率が大きく違ってくるのです。
Google検索にも独自のアルゴリズムが利用されています。自分が知りたい情報に近い情報が瞬時に表示されるのは、Googleが非常に優れた検索アルゴリズムを開発しているからです。
身近にあるアルゴリズム
アルゴリズムは実は身近に多く存在し、私たちは知らず知らずの内にその恩恵を受けています。たとえば「カーナビ」などがそれです。
カーナビにはA地点からB地点に行くルートにどんなルートがあり、どのルートが1番早いか、どのルートが走行距離が短いか、を計算するアルゴリズムが使われています。乗換案内のアプリも同様のアルゴリズムを用いています。
ぜひ『マイナビIT エージェント』をご活用ください!
アルゴリズムを習得するメリット
多くの受験生が苦手とするアルゴリズムですが、習得することで得られるメリットは基本情報技術者試験の対策だけではありません。そこで、アルゴリズムを習得することによるメリットについて見ていきましょう。
プログラミング能力が上がる
アルゴリズムはプログラミングの前工程です。アルゴリズムの精度が上がると、プログラミングの精度が上がります。また、効率的にプログラミングを行えるようになります。基本情報技術者試験のアルゴリズム問題を解く際には、プログラミングをイメージしながら解くようにするとよいでしょう。
アルゴリズムについて勉強する際にも、テキストや過去問解答の丸暗記ではなく、プログラムを意識しながら理解することで応用力も身に付くはずです。
開発スピードが向上する
アルゴリズムに強くなるとプログラミングにも強くなり、精度の高いプログラムをより短時間で作成できます。
また、システム的な問題(処理能力の低下、キャパシティオーバーなど)に直面しても、アルゴリズムのスキルによって的確な対応策や改善案を示すことができるようになり、システムエンジニアとしても一目置かれる存在となるでしょう。
アルゴリズムは試験のために仕方なく勉強するという後ろ向きな考えを払拭し、「活躍できるエンジニアを目指す」という姿勢で前向きに勉強すると習得も早まります。
年収アップの期待も
システムエンジニアの年収は「マイナビエージェント 職種図鑑」での平均年収は431万円(※2023年5月執筆時点)、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」からエンジニア/プログラマを参考にすると、平均年収592万円と分かりました。
国税庁2020年発表の「民間給与実態統計調査」における民間企業平均年収は433万円なので、エンジニアの年収は調査媒体によってバラつきがあることが分かります。
一般的にITエンジニアの報酬は実績が重要視される傾向があるため、さらに年収を上げるには、スキルアップを図る方法が効果的です。基本情報技術者試験の取得に向けてアルゴリズムを学ぶことで、スキルアップ・年収アップに繋がる可能性が高まります
【参考】:マイナビエージェント 職種図鑑 ※【平均年収 調査対象者】2020年1月~2020年12月末までの間にマイナビエージェントサービスにご登録頂いた方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
アルゴリズムの勉強法
基本情報技術者試験に受かる上で鍵を握るアルゴリズム。何とか苦手意識を克服して合格を勝ち取りたいですよね。ここでは、アルゴリズムを習得するための効果的な勉強法について紹介します。
まずは過去問をひたすら解いてみる
苦手意識をなくすには、とにかく過去問をひたすら解いてみることです。実際に紙に書いてトレースすることで、反復練習することで解く力が身についてきます。これによって苦手意識が次第に薄まっていきます。最初は時間が掛かるかもしれませんが、自力で解くことによって自信が生まれます。
令和2年度以降、基本情報技術者試験は非公開となったためIPAの公式サイトには掲載されていません。しかし、それ以前の過去問でも知識を身につけるには十分なので、ぜひ活用してください。
また、隙間時間などにスマホで解くなら以下のサイトもおすすめです。
■過去問道場 試験だけでなく分野を選択することもできるので、アルゴリズム問題のみをピンポイントに学習可能です。苦手な問題を繰り返し復習することで、知識定着を図れます。
【参考】:過去問道場:基本情報技術者過去問道場(午後) 【参考】:IPA 独立行政法人 情報処理推進機構:過去問題
覚えることを整理する
問題でつまづいたら、もう一度覚えておくべきことを整理しましょう。基本的なアルゴリズムとデータ構造は必ず押さえておかなければなりません。
・アルゴリズム 交換法、挿入法、選択法、線形探索法、マージソート、クイックソートなど
・データ構造 配列、連結リスト、キュー、スタック、二分探索木、ヒープなど
また、基本情報技術者試験では専用の疑似言語でプログラムが表記されます。そのため、事前にIPAの資料を確認して、疑似言語の読み方を覚えておきましょう。
【参考】:試験で使用する情報技術に関する用語・プログラム言語など
苦手意識を持たずに取り組む
食べず嫌いの人は「見た目が苦手」という人が大半で、アルゴリズムが苦手な方も同様です。「問題を見ただけで難しそうだった」「1問解いたら難しかった」という方が少なくありません。
しかし、初めから苦手意識を持って学習を始めると、せっかく勉強してもなかなか知識が定着しません。最初は難しいと感じても、過去問を何回か解いていくうちに徐々に慣れて理解できるようになります。そのため、あまり難しく考えすぎずに取り組みましょう。
また、アルゴリズムを学習する際は、転職を目標に据えるのもおすすめです。スキルアップして今よりいい条件で働いている自分を想像すると、勉強のやる気もアップします。転職を考えるなら、自分のスキルにあった企業を探してくれる転職エージェントの活用をおすすめします。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
参考書で理解を深める
以下に、当記事おすすめの基本情報技術者試験におけるアルゴリズムについての本を3つ紹介します。参考書で理解を深めたら、練習問題をたくさん解いて実戦力を高めましょう。
「うかる! 基本情報技術者 [科目B・アルゴリズム編] 2023年版」 本書はアルゴリズムの入門から応用まで、先生と学生の対話型を用いてやさしく学べます。身近な例で説明されているため、「プログラムを動かすとどうなるのか」といったことが分かるようになります。アルゴリズムに絞って学んでみたいという方におすすめです。
▪著者:福嶋 宏訓 ▪ページ数:352ページ ▪出版社:日本経済新聞出版 ▪発売日:2022/12/21
【参考】:うかる! 基本情報技術者 [科目B・アルゴリズム編] 2023年版
「基本情報技術者【科目B】ゼロからわかるアルゴリズムと擬似言語」 フルカラーの紙面と豊富な図解やイラストで、アルゴリズムや擬似言語問題に苦手意識がある受験者でも楽しく学べます。定番のアルゴリズム例と実際の試験問題を例に、ステップアップ方式で学習を進めていくことで、試験に必要となる基礎力と実践的な応用力の両方をスムーズに向上させられます。
▪著者:イエローテールコンピュータ ▪ページ数:272ページ ▪出版社:技術評論社 ▪発売日:2023/3/27
【参考】:基本情報技術者【科目B】ゼロからわかるアルゴリズムと擬似言語 (情報処理技術者試験)
「令和05年【上期】基本情報技術者 パーフェクトラーニング予想問題集」 本書は定番の問題集としておすすめです。2023年4月からの新制度に完全対応しており、計4セット(科目A+B)の模擬試験を掲載しています。繰り返し解くことで、合格に向けた準備ができます。また、読者特典として300語以上の「おさえておきたい頻出用語・重要用語」をダウンロードできるため、隙間時間にスマホなどで閲覧可能です。
▪著者:山本三雄 ▪ページ数:448ページ ▪出版社:技術評論社 ▪発売日:2022/12/17
【参考】:令和05年【上期】基本情報技術者 パーフェクトラーニング予想問題集
本番試験で気を付けたいこと
これは他の試験でも言えることですが、不合格になった際に「解く順番を間違えた」「時間が足りなかった」という方がよくいます。ここでは、本番試験で気を付けるポイントについて述べておきます。
解きやすい問題から先に解答する
アルゴリズムの問題は、解くのに時間が掛かる長文問題が出題されることがあります。ここに時間を取られていると、時間内に全問の解答ができなくなってしまいます。始めの問題に時間が掛かりそうなら、まず先に解答できるほかの問題から取り掛かりましょう。
問題のヒントとなる部分をメモに取る
当たり前のことのように思えますが、アルゴリズムの問題は問題文の中に必ずヒントとなる鍵があります。このヒントを活用するのが、アルゴリズム問題の解答の極意です。
基本情報技術者試験は、CBT方式と呼ばれるパソコンなどで解答する方式です。問題に直接メモ書きすることはできませんが、試験会場で計算などに使うメモ用紙が配られるため、そのメモ用紙にヒントとなる箇所を書き出したり、計算式やフローを書いたりしましょう。
配列に関する問題
基本情報技術者試験で気を付けたいこととして、配列に関する問題が挙げられます。過去に配列が出題されたパターンは多く、ほぼ出題されると考えましょう。その際、配列の要素番号と紐付けられた値に注意してください。
配列の要素番号の開始番号は、「0」が設定されることが一般的ですが、試験に出題されるプログラムの場合は「1」が設定されるパターンがあるため、気を付けたいポイントです。
メモを取るなどして、確実に解答できるように工夫しましょう。
アルゴリズムの壁を乗り越えて期待されるエンジニアを目指そう
良いシステム、良いプログラムを作るにはアルゴリズムに強いことが求められます。アルゴリズムに強いエンジニアは良いプログラマー・良いシステムエンジニアになれる可能性が高まります。
また、アルゴリズムに強いことで効率の悪いシステムを分析し、改善と提案ができるようになります。システム的なものの考え方が身に付いてくると、さらにステップアップができるでしょう。
アルゴリズムは基本情報技術者試験の1つの壁ですが、コツコツ勉強することできっと乗り越えられます。アルゴリズムに強くなって基本情報技術者試験に合格すれば、一流エンジニアとして今よりもっといい条件で働ける可能性が高まります。
しかし、基本情報技術者試験を実際に活かせる企業を、自分で探すのは難しいですよね。
そこでぜひご活用いただきたいのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向けの無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案致します。
アドバイザーは企業側の人事担当者と直接連携を取れますので、求人票に載っていない企業情報も確認することができます。残業時間や給与面など、働き方などをしっかり確認の上で応募企業を選んでいくのが良いでしょう。
・資格やプログラミングの勉強をしているけれど、企業が求めるレベルに達しているのかわからない ・スキルアップをして市場価値を上げていける企業の選び方を知りたい ・数多くあるITエンジニアの職種の中で、自分に向いている仕事は何か知りたい
こうした悩みを抱えていらっしゃる方は、まずは無料登録でキャリアカウンセリングをおすすめ致します。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから