応用情報技術者試験〔午後〕プログラミング 対策 令和 4 年度版 「過去問を使った勉強方法」


2022-07-26 公開

応用情報技術者試験の午後問題の問 3 は「プログラミング分野」の問題です。 選択問題のひとつ(問 2 から問 11 はすべて選択問題)なので配点は 20 点です。

プログラミングの問題は、今の高度系試験では問われません。 せいぜい、情報処理安全確保支援士試験のセキュアプログラミングぐらいでしょう(ただ、セキュアプログラミングで問われているのはアルゴリズムの複雑さではないので、ほぼ無関係です)。 したがって、基本情報技術者試験で最重視されているプログラミングとアルゴリズムは、この応用情報技術者試験が最後です。

これまでの出題内容

プログラミング分野の過去問題(平成 16 年春~令和 4 年春)は、次のようになります。

swipe 表はスクロールできます

年度 テーマ
16 午後Ⅰ 5 Base64
午後Ⅱ 1 2 点間の経路の探索 スタック、キュー
17 午後Ⅰ 5
午後Ⅱ トランザクション処理
午後Ⅰ 5 ソートのアルゴリズム
18 午後Ⅰ 5 グラフの最短経路
午後Ⅱ 大きなけた数の整数の演算操作
午後Ⅰ 5 2 分探索木
午後Ⅱ 配送計画問題 巡回セールスマン
19 午後Ⅰ 5 小町算の解を求める
午後Ⅰ 5 トポロジカルソート 再帰
午後Ⅱ B 木
20 午後Ⅰ 5 マージソート 再帰
午後Ⅱ パズルの解法
午後Ⅰ 5 ヒープソート 二分木
21 午後 2 チェイン法
午後 2 文字列照合処理
22 午後 2 アプリケーションで使用するデータ構造 リスト
午後 2 構文解析 BNF
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 ウェーブレット木 2 分木
31 午後 3 発券機の注文の状態を判定
01 午後 3 ニューラルネットワーク パーセプトロン
02 中止
午後 3 誤差拡散法
03 午後 3 クラスタ分析( k-means 法 )
午後 3 一筆書き グラフ
04 午後 3 パズルの解答を求めるプログラム 深さ優先探索、再帰処理

以前は、整列・併合・探索のアルゴリズムや再帰、グラフ、文字列処理のアルゴリズムなど、基本的なアルゴリズムをテーマにした問題が多かったのですが、令和になって第 4 次産業革命への対応を重視するという発表されてからは、比較的新しい技術に関する問題が中心です。

選択するか?しないか?

この問題を選択するかどうかは、ここであれこれ言わなくても、おそらく自分自身が一番よくわかっていると思います。

プログラミングが未経験の人や苦手な人は、短時間では仕上がらないこともわかっているはずなので最初から選択しないことを決めているはずです。 そのため、このプログラミング分野の問題を選択するのは、原則プログラミング経験者か、相応の知識を持っていてプログラミングに自信を持っている人になると思います。

但し、このプログラミング分野が出題されるのは応用情報技術者試験までなので、「苦手分野を残さない」という考えの人は挑戦してみるのも面白いのではないでしょうか。

対策(学習方法)

プログラミング分野の問題の選択順位が高い人、すなわち試験日に選択する可能性の高い人は、次のような対策が有効だと考えています。

1 学習開始時点での実力の確認

まずは直近 6 回分ほどの過去問題を解いてみましょう。 そして、次の 3 点を確認します。

  1. 時間はどれくらいかかったのか?
  2. 30 分以内に満足のいく解答ができたかどうか?
  3. 30 分だと何点取れたのか?

午後試験では 150 分で 5 問解くので、時間を均等配分すると 1 問あたり 30 分です。 そこで、まずは “30 分” という時間で解けるかどうか、時間が足りないと感じないか、満足のいく解答ができるかどうかをチェックします(上記の 2. と 3. で確認)。

最終的には、他の問題の解答時間を考慮して「(他の問題に短時間で解けるものがあるので)プログラミング分野の問題に 45 分使う」とか「 60 分使って確実に満点を狙う」という戦略を取ることができるかもしれないので、上記の 1. も確認しておきます。

応用情報技術者試験のプログラミングの問題は、プログラミング経験者だったら誰もが高得点を取れるという類のものではありません

というのも、ここで問われているのは(過去問題の出題リストを見てもらえばわかりますが)ソート処理や経路選択、圧縮処理、ニューラルネットワークなど基本的なアルゴリズムです。 普段作成しているプログラムが同類のものなら問題はないのですが、例えば会社で業務処理のプログラムを作っている人だと難しく感じることも。 ここで問われているようなアルゴリズムはライブラリになっていて、それを使っているだけかもしれませんので。

したがって、「プログラミングは普段仕事でやっているから大丈夫。 」と安心せずに、まずは時間をチェックしましょう。

2 選択の可否、優先順位などを再度検討するとともに、対策するかどうかを決める

実際に 6 回分ほど解いてみたら、今後の対策を含めて再検討しましょう。

6 回とも十分余裕をもって解くことができ、かつ高得点の人は、特に対策が必要ないかもしれません。 その分、他分野に時間をかけて合格を狙いましょう。 もちろん優先順位は 4 番手以内で、原則「選択する」ことになります。 そのあたりは、手応えからご自身で判断できることだと思います。

とても難しく感じ 40 分どころか 60 分以上かかってしまった人は、優先順位を下げて対策をしないことも視野に入れましょう。 課題がはっきりしていて改善のめどが立っている場合や、この対策に十分すぎる時間が取れる場合は問題ありません。 その課題克服にまい進しましょう。 しかし、そうでない場合は、試験までの短期間で飛躍的に伸びることは期待できません。 それならいっそ何も対策せずに、他の(短期間で仕上がる)分野に時間を費やす方が得策だと思います。

問題によってバラつきがある人は、試験当日に問題を見て「選択するかどうかを決める」のがベストです。 特に、そのバラつきの要因が分かっている人は、試験当日にその点をチェックして判断できると思います。 他の分野の仕上がり次第で「原則、解かない」のか「原則、解く」のかを決めればいいでしょう。 前者の場合、対策を一切しないのもアリでしょう。 後者の場合や、バラつく要因が分からない人は、さらに過去問題を解いて短時間で解けるように練習を重ね、基本アルゴリズムの動きをチェックしましょう。

3 過去問題を解きながら、時間短縮の練習をする

この分野の対策が必要だと考え、対策に時間を使う(直近 6 回分より多くの問題を解く)場合で、かつ課題が時間短縮のケースでは、最初に、どこに(何に)時間がかかっているのかを把握しなければなりません。 よくあるのが次のような点です。

  • 何をしようとしているのか(インプット、アウトプット)を把握する
  • アルゴリズムの基本的な動きを把握する
  • 1 次元配列、 2 次元配列の使い方を把握する
  • 個々の変数の使い方を把握する

どこに時間がかかっているのかが把握できれば、後は、それが問題文のどこで表現されているのか?を問題ごとに把握して、その先入観をもって次の問題を解くといいと思います。 そうやって時間短縮の練習をしましょう。

label 関連タグ

『定額制』
高度試験対策研修 KOUDO 初公開!

定額制だから、
どの区分でも何名でも
受け放題!!

label応用情報技術者試験』の [ 人気 / 最新 ] 記事 label 著者

ご案内

高度試験対策が
どの区分でも
何名でも
受け放題!

人気記事

タグ一覧