株式会社わくわくスタディワールド

株式会社わくわくスタディワールド

アルゴリズムの勉強法

わく☆すた,美月です。
わく☆すたの夏期休業は,8月13日(金)~8月16日(月)になります。
この間は,発送業務は行いませんので,お盆に教材を使いたい方は,8月12日(木)までにお申込みください。
ちなみに,「わく☆すた公開セミナーDVD 分野別徹底学習 システム開発」は好評発売中です。

昨日,「「ポインタ」の概念を学ぶ」で書いたのですが,応用情報技術者試験のアルゴリズムは,リスト構造や二分木などを,C言語でポインタと構造体を使って表せるようなスキルがあると,大分解きやすくなると思います。
ただ,このスキルって,意外とレベルが高いんじゃないかな,って感じてます。
Cが使えても,ポインタの概念がよくわかってない人って結構多いですし,構造体も,概念自体は難しくないですが,それを使ってリスト構造を表すやり方などは,結構高度なスキルだと思います。

なので,C言語をやるときには,初級レベルは超えて,ひととおり使いこなせるレベル,多分中級レベルぐらいには使いこなせる必要があります。
別にそれがC++でもJavaでもいいのですが,なんとなく文法がわかって使える,というレベルからは,一歩踏み込むことは大切です。言語にかかわらず,一定レベル以上のプログラミングスキルがあるかどうか,というのを,応用情報技術者試験の午後のプログラミング(アルゴリズム)は試しているような気がします。
ですので,何か1つ,かなり使いこなせる,というプログラミング言語があると,アルゴリズム問題はすごく解きやすくなると思います。

このとき,基本情報技術者試験のC言語の問題が解ける,というレベルでは,正直足りないと思います。基本情報技術者試験の午後のC言語の問題は,あくまで基本のレベルです。これが解けないと基本ができていない,という初級レベルの問題ですので,これが解けたからといって,C言語がわかっているというほどのレベルかどうかは疑問です。Javaはもう少し難しい気がしますが,やっぱり基本のレベルだとは思います。

ですので,アルゴリズムの勉強法の王道としては,何か一つのプログラミング言語,できればC言語やC++,JavaなどのC言語に似た言語を,一つきっちり勉強する,ということになるとは思います。基本情報技術者試験のレベルは超えて,C言語入門,とかの本のレベルではなく,中級者レベルのスキルを身につけると,問題は理解しやすくなると思います。

ただ,アルゴリズム問題は,別にプログラムが組める必要はないので,その疑似体験として,過去問を実際に解いてみるというのもおすすめです。考え方のパターンは,数をこなせば身についていきますので,応用情報技術者試験の過去問をみて,なんとかくらいついていけるようでしたら,ソフトウェア開発技術者試験にさかのぼって,アルゴリズム問題だけ問題演習してみるといいと思います。

何問目でできるようになるかは,個人差はありますが,プログラミングをするときの考え方を身につけるのが本来の目的ですので,コツがつかめれば解けるようになります。
応用情報技術者試験の問題が難しければ,基本情報技術者試験にさかのぼってみる,または,基本情報技術者試験の問題を選択肢なしで解くというのもおすすめです。

アルゴリズムが苦手な人の問題の解き方を見ていると,あんまり手を動かしてなくって,頭だけで考えてる人が多いように感じています。とにかく泥臭く,1つ1つめんどくさがらずにトレースしてみる,というのは,アルゴリズムの解き方を身につけるための王道です。プログラミングでも,実際デバッグしながら,値をトレースしてみることで動きがつかめますし,その疑似体験を積むことが,アルゴリズムの問題を解くスキルや,プログラミングをするスキルを上げることにつながります。

アルゴリズムは,最初からできる人や,センスがある人も確かにいますが,それはごくわずかです。大半の人は,プログラミングや問題演習を通じて,徐々にコツをつかんでいくものです。
ですので,あきらめず,実際に手を動かしながら,アルゴリズム問題を解いていきましょう。