飲み込みの遅い私がアルゴリズムを攻略するまで

この記事では、基本情報技術者試験で配点が高くなったアルゴリズムの攻略法を書いています。トレースのやり方や、やっておくべき過去問3選もあるので、ぜひお役立て下さい。

基本情報技術者試験トップ
アルゴリズム無料教材
CBT試験(午前免除午後試験)お役立ちリンク集
午前免除試験
これからプログラミングをはじめる方へ



基本情報技術者試験のアルゴリズム問題の疑似言語が読めないのは、必ず原因があって読めない、ということに気づきましたのでそれをシェアしたいと思います。
私は「要領の悪さ」と「どんくささ」でしたら、少なくともあなたには負けない自信があります!!
そんな私が、何故今まで自分は疑似言語が読めなかったのかを分析してまとめましたので、もしも参考に出来そうな所がありましたら、持って帰って下さい。

●混乱による理由
疑似言語の日本語によるプログラムの説明文でいろいろと難しそうな英字が出て来ますけれど、「それが変数なのか、配列なのか、プログラム(関数)名なのか」分からないと混乱します。
なので、配列の場合はhairetsu[]など、[]を書くことにしました。
また、どこを見ているのか分からなくなったので、左手でマウスを操作して、読んでいる所にカーソルを合わせ、右手でペンを持ってトレースする練習をしました。

●遅い
トレースが遅くて悩んでいました。それは配列の場合、どの要素番号なのか分からなくなってしまっていました。
そこで、例えばhairetsu[]={100,200,300,400,500}で配列の要素が0から始まる場合は、[0]と書いて、{100,200,300,400,500}の真上に0,1,2,3,4と配列の要素番号を書き、更にその右に「5」と配列の長さを書きました。
これにより解ける問題も出て来るかも知れません。
また、訓練によってトレースは早くなります。そこで、同じ過去問をじっくり解くという勉強を×3やりました。
そのプログラムを覚えてしまうぐらい繰り返してから次の過去問に行きました。
期間として1週間同じアルゴリズムを解きました。

●間違える
ミスを防ぐためには、変数の中でも関数が戻り値として返す変数に◯を囲いました。
私は引数、戻り値が良く分からなかったので、どこかで聞いたことのある例と対応付けました。カレーライスを作るプログラムが、処理の中でカレー鍋というプログラムを呼び出し、引数として(かっこ)の中に(じゃがいも、ニンジン、などなど)の具材を入れます。そこで戻り値として料理が出て来ます。
アルゴリズムが出来なかった頃の私は、カレー鍋の中に何の材料も入れないで、カレーライスを食べたい、何で出てこないの??あ、まちがってラーメン作っちゃった、という失態をしていました。

●テクニック
プログラムを読みやすくするテクニックとして、本文を良く読んで、何をやっているプログラムなのか日本語の説明文から掴む→
先に選択肢を見る→コメントとその対応のプログラムを見る→それからプログラム自体を見るという順番で解きました。

●CBTの画面上でのトレース
この本の読者特典に「動く疑似言語」といって、PowerPointを使った特典が付いています。


基本の整列、探索などのアルゴリズムの動きを画面上でトレース出来るので、令和2年度以降のCBT試験の対策として役立ちます。また本自体も解説が分かりやすいので、私はこの本でアルゴリズムのトレースを学びました。
若干扱っている年度が古いので、このあと紹介する比較的最近の過去問も合わせてやっておくと自信付くと思います。

●計算用紙でトレース
アルゴリズムを始めた頃はExcelで枠を作ってこの様に作っても良いと思います。

しかし、試験近くなって来たらA4用紙の中央に線を引いてその状態でこの様にトレースを出来るようなるまで練習あるのみです。

試験1週間前の元旦(令和3年1月1日)に解いたアルゴリズムです。

関連リンク:平成27年秋過去問ノート

関連リンク:平成29年春午後過去問ノート

●やっておくべき過去問3選
過去問どれからやるべきか迷う所です。そこでグズでノロマな私が無理なくアルゴリズム攻略出来るのに特に役立った過去問を3選紹介します。
※私の独断と偏見です。

第1位平成30年秋
このアルゴリズムは四則演算なので、+-×÷が分かればそれ以上の知識は要らずにトレース出来ます。なので、トレースのみに集中できて、すごくトレースの練習になります。
関連リンク:平成30年秋午後過去問ノート

第2位平成27年秋
このアルゴリズムは検索です。
配列の要素の比較をしてずらしながら検索して行きます。
こういった処理は基本情報技術者試験の良くあるパターンなのでこの試験の攻略するために練習になる問題です。

関連リンク:平成27年秋午後過去問ノート

第3位平成29年春
これはちょっと難易度が高いアルゴリズムですが、これを攻略出来たら自信もって良いと思います。経路探索、ダイクストラ法と呼ばれるアルゴリズムを使っています。
頭が混乱するかもしれませんが、アルゴリズムを攻略できたかどうかの要となる過去問だと私は思います。

関連リンク:平成29年春午後過去問ノート

最後にアルゴリズムの攻略や読んでいて面白いと思った本を紹介します。
すべて同じ著者、矢沢久雄先生の本です。(回し者では無く、良いものは良いと思ったので紹介致します。)

実際に作りながら学べますので、先の本と並行して学ぶと非常に面白いと思います。
javaとCに対応しています。(C言語はこの本のリンクからダウンロードで入手可能)

C言語なるほど実験室
基本情報技術者試験の範囲も扱っている実験を通して、プログラムの流れをつかめます。

関連記事

基本情報技術者試験トップ
アルゴリズム無料教材
CBT試験(午前免除午後試験)お役立ちリンク集
午前免除試験
これからプログラミングをはじめる方へ

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。