「アルゴリズムでなかなか点が伸びない。どうやって勉強すればいいの?」
という疑問に答える記事です。
アルゴリズムはプログラミングの能力が問われる問題であるため、他の分野と異なり過去問題集を解くだけでは得点を伸ばせません。
実際にプログラムを書いたり、机上でトレースしたりすることが大切です。
過去問ばかり解いても時間の無駄なので、プログラムを動かすことに時間を使うようにしましょう。
本記事では、アルゴリズムの勉強方法について紹介します。
本記事の内容は以下の通り。
・アルゴリズムの勉強は問題集だけだと厳しい
・アルゴリズムの具体的な勉強方法
・基本情報の試験でアルゴリズムを捨てるのはおすすめしない
Table of Contents
アルゴリズムの勉強は問題集だけだと厳しい
基本情報技術者試験の大半の問題は過去問題集を何回か解いて解説を読めば高得点を取ることができます。
しかし、アルゴリズムとプログラミングの問題に関しては問題集をただ解くだけでは得点を上げることが難しいです。
問題を解くだけだとプログラムが動くイメージができないため、解説を読んでもしっくり来ないんですよね。
私は問題だけ解くことに意味がないことに気づくまでにモーレツに時間を使ってしまったので、何回も試験に落ちています。
アルゴリズムとプログラミングは午後問題の配点の50%を占めているので、この2つを理解しておかないと合格は遠いです。
逆に言えばアルゴリズムとプログラミングができればかなり合格に近くなります。
アルゴリズムの解き方はプログラミングの問題を解く場合にも応用できることも多いです。
まずはアルゴリズムについて理解してプログラミングについても勉強しておきましょう。
アルゴリズムの具体的な勉強方法
・アルゴリズムを実際に書いて動かす
・机上でトレースする
アルゴリズムを実際に書いて動かす
最も有効な方法がアルゴリズムを実際に書いて動かしてみる方法です。
実際に動かすことで「プログラムがどのように動くか」というイメージが頭にできてきます。
プログラムが動くイメージがあるかどうかでアルゴリズムの問題の解きやすさは全然違います。
アルゴリズムが再現できる言語であればプログラミング言語は何でもOK。
プログラムを実際に動かす時にチェックするポイントは以下です。
・入力値:引数としてアルゴリズムに渡す値
・出力値:リターン値。アルゴリズムを実行した結果得られる値
・途中の値の変化:途中の値の変化
・問題の選択肢:選択肢によるリターン値の変化
正解の選択肢だけではなく、不正解の選択肢での動作確認もしましょう。
なぜこの選択肢ならよくて他の選択肢がダメなのかということをより理解できます。
机上でトレースする
トレースとは実際にプログラムを動かさずに目でプログラミングやアルゴリズムの処理を追う方法です。
実際に動かすことと比較すると少し難易度が上がります。
最初はプログラムを実際に動かしてみて、慣れてきたらトレースしてみるのがおすすめです。
トレースができるようになればプログラムを書く時間を短縮できるので勉強速度をあげることができます。
具体的なトレースの方法については「アルゴリズムのトレース方法」もあわせてお読みください。
トレースでチェックするポイントもプログラミングを動かす場合と同じで以下の4つです。
・入力値:引数としてアルゴリズムに渡す値
・出力値:リターン値。アルゴリズムを実行した結果得られる値
・途中の値の変化:途中の値の変化
・問題の選択肢:選択肢によるリターン値の変化
アルゴリズムを実際に書く場合と同様不正解の選択についてもトレースしておきましょう。
「なぜこの選択肢ではないといけないのか」を理解することが大切です。
基本情報の試験でアルゴリズムを捨てるのはおすすめしない
「アルゴリズムってどうも苦手だな。捨てて他の分野に絞るのはどうなの?」
と考える人もいると思いますが、アルゴリズムを捨てるのはおすすめしません。
アルゴリズムは必須問題ですし、配点も25点とでかいです。また、アルゴリズムで勉強した内容はプログラミングの選択問題にも応用できるので、プログラミングの得点アップにもつながります。
プログラミングも25点と配点が高いので、アルゴリズムとプログラミングは絶対に勉強しておきましょう。
「アルゴリズムで点が取れなくてもあと75点あるから合格できるじゃないか」
と思うかもしれませんが、プログラミングとアルゴリズムはセットで勉強できるので「プログラミングは勉強してアルゴリズムは捨てる」という考えでいるのは非常にもったいないです。
「プログラミングのついでに勉強する」
くらいの感覚でいいので必ずアルゴリズムの勉強はしておきましょう。
関連記事>>【基本情報】アルゴリズムを捨てるのはあり?結論:なしです
終わりに
基本情報技術者試験の大半の問題は過去問題集を解いていれば得点できるようになります。
しかし、アルゴリズムの問題はプログラムが動くイメージがないと解くのが難しいため、過去問題集の勉強だけでは不十分です。私はそこに気づくのに時間がかかってしまい多くのお金と時間を無駄にしてしまいました。
午後問題のアルゴリズムの配点は25点です。アルゴリズムは選択必須の問題でもあるため、アルゴリズムが解けるかどうかが合格に大きく左右します。
アルゴリズムの勉強方法はプログラミングの問題にも応用できるので、まずはアルゴリズムの勉強をして得点を取れるようにしましょう。
基本情報技術者対策まとめ>>基本情報技術者(FE)の対策まとめ