応用情報技術者試験〔午後〕プログラミング 対策 「基礎的なアルゴリズムを知る」
応用情報技術者試験の午後問題において、選択問題になっているプログラミング分野(通常は問 3 で出題)をどうするのか考えてみましょう。
選択すべきかどうか
Point-1 プログラミング関連の問題は応用情報技術者試験が最後
プログラミング分野の問題を選択すべきかどうかを考えるうえで、一つ目の論点がこれです。
プログラミングの問題は、今の高度系試験ではほとんど問われません。それらしきものを見かけるのは、情報処理安全確保支援士試験のセキュアプログラミングとエンベデッドシステムスペシャリスト試験ぐらいですが、いずれも、基本情報技術者試験や応用情報技術者試験で問われる “アルゴリズムの複雑さ” はありません。
そのため、「高度系にはつながらない」から避けるのか、逆に「これが最後の挑戦」だからしっかりとアルゴリズムを会得しおくのか…考え方の違いによって選択すべきかどうかが変わってきます。
Point-2 最近の基本情報技術者試験のアルゴリズムが得意だったかどうか?
二つ目の論点は、基本情報技術者試験を受験した時に、アルゴリズムの問題が得意だったかどうかです。受験経験のない人でも、アルゴリズムが非常に得意だというのなら全く問題はありませんが…「基本情報技術者試験のアルゴリズムの問題を見たことがない」や、「解いた経験がない」ではリスクがあります。
Point-3 プログラミング経験者か否かという点
そして最後の論点は、実務でプログラミングを実施しているか否かという点です。遠い昔でなければ(忘れていなければ)過去の経験でも構いません。プログラミング経験があれば、基本情報技術者試験の受験経験が無くても高得点を取れる可能性が出てきます。
というより、この問題を選択するのは、基本的に…プログラミング経験者か、同等の経験を持っている人ではないでしょうか(最後に言うのも何ですが)。プログラミングに関する基礎的な知識(非言語の部分)がないと短時間ではどうにもなりません。他の分野の方が、ずっと早く仕上がりますからね。
以上、これら 3 点を自分なりにチェックした上で、次の特徴や課題、対策方法も含めて考慮した上で優先順位を決めましょう。
特徴と課題
プログラムの問題の良いところは、過去問の全部に目を通さなくてもいいところです。
ネットワークや情報セキュリティ、経営戦略他、多くの分野には “複数のテーマ” がありますから、個々のテーマの問題に広く目を通しておく必要がありますよね。でも、プログラミングの問題で問われているのは、次のようなものなので、それらの “解き方” を知っていれば、原則、どんな問題でも大丈夫です。
- 問題文の記述から “動き” が把握できているかどうか?
- アルゴリズムの条件分岐の条件式、ループの終了判定条件、テーブルの使い方など
特に、日々プログラミングを生業にしている IT エンジニアの方々は、そんなに試験対策として改まった勉強をしなくても、後述しますが、ケアレスミスを恐れずに 60 点狙いで短時間で解くことを意識できれば、高得点が望めます。
また、過去に出題されたテーマは次表のようになります。これは、 IPA が公表している平成 16 年以後の過去問題(平成 20 年以前は、旧ソフトウェア開発技術者試験の問題)を出題年度順にまとめたものです。
年度 | 期 | 問 | 出題されたアルゴリズム | |
---|---|---|---|---|
16 | 春 | 午後Ⅰ | 5 | Base64 |
午後Ⅱ | – | 2 点間の経路の探索 | ||
17 | 春 | 午後Ⅰ | 5 | リスト |
午後Ⅱ | – | トランザクション処理 | ||
秋 | 午後Ⅰ | 5 | ソートのアルゴリズム | |
18 | 春 | 午後Ⅰ | 5 | グラフの最短経路 |
午後Ⅱ | – | 大きなけた数の整数の演算操作 | ||
秋 | 午後Ⅰ | 5 | 2 分探索木 | |
午後Ⅱ | – | 配送計画問題 | ||
19 | 春 | 午後Ⅰ | 5 | 小町算の解を求める |
秋 | 午後Ⅰ | 5 | トポロジカルソート | |
午後Ⅱ | – | B 木 | ||
20 | 春 | 午後Ⅰ | 5 | マージソート |
午後Ⅱ | – | パズルの解法 | ||
秋 | 午後Ⅰ | 5 | ヒープソート | |
21 | 春 | 午後 | 2 | チェイン法 |
秋 | 午後 | 2 | 文字列照合処理 | |
22 | 春 | 午後 | 2 | アプリケーションで使用するデータ構造 |
秋 | 午後 | 2 | 構文解析 | |
23 | 春 | 午後 | 2 | 集計表を HTML に変換出力 |
秋 | 午後 | 2 | ハッシュ法と排他制御 | |
24 | 春 | 午後 | 2 | 文字列を圧縮 |
秋 | 午後 | 2 | N クイーン問題 | |
25 | 春 | 午後 | 2 | 逆ポーランド表記法 |
秋 | 午後 | 2 | リストによるメモリ管理 | |
26 | 春 | 午後 | 3 | 循環小数の循環節を検出 |
秋 | 午後 | 3 | マージソート | |
27 | 春 | 午後 | 3 | Block-sorting |
秋 | 午後 | 3 | 2 分探索木 | |
28 | 春 | 午後 | 3 | ライフゲーム |
秋 | 午後 | 3 | 魔方陣 | |
29 | 春 | 午後 | 3 | 探索アルゴリズム |
秋 | 午後 | 3 | ナップザック問題 | |
30 | 春 | 午後 | 3 | ナイトの巡歴問題 |
秋 | 午後 | 3 | ウェーブレット木 | |
31 | 春 | 午後 | 3 | 発券機の注文の状態を判定 |
01 | 秋 | 午後 | 3 | ニューラルネットワーク |
02 | 春 | - | - | 中止 |
秋 | 午後 | 3 | 誤差拡散法 | |
03 | 春 | 午後 | 3 | クラスタ分析( k-means 法 ) |
looks_one基礎理論(基本的なアルゴリズム)が問われている
基本情報技術者試験の受験生や、応用情報技術者試験の過去問題に目を通した人には言うまでもありませんが、ここで問われているのは “業務処理のためのプログラム” ではなく、ソート処理や探索処理、逆ポーランド表記法などの基礎理論になります。
この表を見れば、一目瞭然ですよね。
したがって、普段、業務処理のためのプログラムを作っている IT エンジニアは注意が必要です。試験合格に必要な “短時間での解答” ができるかどうかがポイントになります。
looks_two記述式
これも、過去問題に目を通した人にとっては “今さら” ですが、念のため確認しておきましょう。
同じアルゴリズム(応用情報ではプログラミング)の問題でも、基本情報技術者試験の時には “選択” で解答できていましたが、応用情報技術者試験では(原則)記述式で解答することになります。
そのため、基本情報技術者試験の時に「選択肢を順番に当てはめてみて、それでトレースをしてみた」という解答の仕方で乗り切った受験生は注意が必要です。もう、その手は使えません。
looks_3先端技術
令和 2 年の試験から、全試験区分で先端技術( AI 、IoT 、ビッグデータ他)の出題が増えています。いわゆる “デジタルトランスフォーメーション” 絡みの出題です。
応用情報技術者試験も例外ではありません。
令和元年秋試験ではニューラルネットワークの基本概念が、令和 3 年の春にはクラスタ分析がそれぞれ問われています。
looks_4仕事は 100 点が求められるが、試験では短時間で 60 点を取ることが求められている
あとはプログラミング経験者でも、仕事で求められるスキルと、試験合格のために必要なスキルは微妙に異なります。前者は、少々時間をかけてでも 100 点でないといけませんが、後者は “60点ぐらいで良いので速く解く” ことが求められます。じっくりと向き合う時間はなく、いかに速く正解にアプローチできるかが必要になります。
対策方法
それでは、最後に対策方法について考えて行きましょう。もちろん、この分野の問題を解く可能性がある(優先順位が高い)人だけで構いません。
looks_one直近の問題を数問解いてみる
まずは、過去問題を(時間を計測して)数問解いてみましょう。
どれくらいの時間で、何点ぐらい取れるのか確認するためです。
その情報を持っているだけで、試験本番の時に様々な戦略が取れますからね。
応用情報技術者試験の午後の試験時間は 2 時間半( 150 分)で、その時間で、必須の情報セキュリティの問題を含む 5 つの問題を解答します。均等に時間配分する場合は 1 問あたり 30 分。なので、まずは 30 分でどれくらい点数が取れるのかをチェックします。
また、他の分野の問題が得意で、仮に 1 問 20 分で解答できる分野があるとすれば、 1 分野につきプラス 10 分…最大でプラス 40 分使うことができます。つまり、 50 分から 90 分プログラムの問題で使えることになります。
そのため、 “時間” だけが課題で、時間を十分にかければ高得点が取れるという場合、試験本番の時には他の分野の出来不出来によって優先順位を上げたり下げたりできるようになります。
まずは、過去問題を解いてみて、自分が “どれくらいの時間で、何点ぐらい取れるのか?” データを取ってみましょう。
looks_two動きを知らないテーマの問題を、さらに何問か解いてみる
直近の過去問題を解いてみて、ある程度の手応えを感じたなら、さらにもう何問かを解いてみましょう。
前述の通り、プログラムの問題の良いところは、過去問の全部に目を通さなくてもいいところです。
とは言うものの、よく出題される “アルゴリズムの条件分岐の条件式、ループの終了判定条件、テーブルの使い方など” を、短時間で正解を導き出すパターンは持っておかなければなりません。
それには、全く動きを知らなかったアルゴリズムの問題を解いてみる必要があります。動きを知っている問題の場合、どうしても短時間で解けてしまいますからね。試験本番の時に、動きを知らないアルゴリズムが出題される前提で準備しておいた方が確実です。動きを知っているアルゴリズムが出題されたらラッキーというぐらいの気持ちでいるのがベスト。
そのため、過去問題の練習では動きを知らないアルゴリズムを使うことをお勧めします。
label 関連タグ『定額制』
高度試験対策研修 KOUDO 初公開!
定額制だから、どの区分でも何名でも 受け放題!!
- 略歴
- 株式会社エムズネット代表。
大阪を主要拠点に活動するIT コンサルタント。 本業のかたわら、大手 SI 企業の SE に対して、資格取得講座や階層教育を担当している。高度区分において脅威の合格率を誇る。 - 保有資格
-
- 情報処理技術者試験全区分制覇(累計 32 区分,内高度系 25 区分)
- ITコーディネータ
- 中小企業診断士
- 技術士(経営工学)
- 販売士 1 級
- JAPAN MENSA 会員
オフィシャルブログ 「自分らしい働き方」Powered by Ameba