みーくんの思考世界

自閉症スペクトラム障害、うつ病で休職中の男が綴る雑記ブログです。YouTube配信もやっています。→https://www.youtube.com/user/xnfangbmg

【スポンサーリンク】

【平成31年度春期合格済】基本情報技術者試験に合格するための勉強方法と解法

【スポンサーリンク】

f:id:MiyquN:20190525163450p:plain

 

どうも、みーくんです。

今週の火曜日(5/21)は突然の雨で冷え込みましたが、そこからは気温が急激に上がり、今日は30℃を超える真夏日になっていますね。私は暑さには強い人間だと自覚しているのですが、それでも蒸し暑く感じております。適度に水分・塩分補給をとって、熱中症にはくれぐれも注意してください。

さて、本ブログでも何度かお伝えしておりましたが、私は復職のためリワークに通っている傍ら国家資格取得に向けて励んでおりました。IT技術者向けの資格で「基本情報技術者試験(略称:FE)」と呼ばれているものです。今年の4/21(日)に受験したのですが、今週5/22(水)の正午に試験結果が開示されました。結果、午前試験・午後試験共に合格基準を上回り、晴れて取得することができました。

そこで、今回は過去行ってきた勉強の振り返りがてら、合格に向けたちょっとしたコツについて述べていければと思います。

 

※尚、本試験の概要については過去ブログで説明しておりますので、そちらをご一読いただければ幸いです。

www.miyqun.site

 

試験結果

基本情報技術者試験は基本的な知識を問う午前試験と、応用力を問われる午後試験に大別され、両者共合格基準は6割(60点)以上となっております。私は以下の結果でした。

 

平成31年度 春期 基本情報技術者試験

 

[成績]

午前得点:81.25点

午後得点:72.00点

 

[午後の解答した問題]

問1:情報セキュリティ

問3:データベース

問5:ソフトウェア設計

問6:プロジェクトマネジメント

問7:システム戦略

問8:データ構造及びアルゴリズム

問13:ソフトウェア開発(表計算)

 

試験の手応えとしては、午前は自己採点するまでもなく自信はあったのですが、午後で躓いたかな~という印象でした。午後試験は問題量に見合った時間が確保されておらず、時間との勝負になりますので、分からない問題は勘でマークして次の問題に移っていました。そのため、「確かな自信」のようなものがなかったです。

また、本試験はマークシート形式なので、「マークミスし忘れ」という初歩的なミスをしでかす可能性もあるのですが、合格発表まできちんとマークしていたか気が気でなりませんでした。

前回は3年前の「平成28年度春期」の試験を受験し、午後問題が合格基準に届かず落ちてしまいましたので、今回は午後問題に力を入れました。今回の受験でも自信がなかった午後問題でしたが、自己採点では厳しく見積もっても65点という結果に。改めて結果を見たところ7点も上がっていました。

私は根っから文系の人間なので、基本情報技術者試験は非常に難関に感じました。しかし、今となっては努力が実って良かったと考えています。

 

午前問題対策

まずは、私がこなしていた午前問題の対策について述べます。

 午前試験の鉄板は、

 

"参考書で全体像を把握し、過去問を数多く解く"

 

これに尽きます。なぜなら、基本情報技術者試験の午前問題は4,5割は過去問を流用しているからです。通勤・通学時間を利用して、以下のサイトを活用するだけで、得点力がみるみる上がっていきます。

 

www.fe-siken.com

 

したがって、数多く解いていくと選択肢を吟味するまでもなく問題を見るだけで解答が分かるようになります。基本情報技術者試験の午前問題は暗記で乗り越えられると言っても過言ではないでしょう。

尚、参考書は以下を選びました。

 

book.impress.co.jp

 

IT知識に疎い方でも、すんなり理解できる良書です。

まずは、参考書を読んでから、知識の習得に努め、その後過去問道場で知識の定着と試験傾向を把握します。過去問道場で間違えた問題は基礎が理解できていない可能性があるため、参考書に戻り、見直し作業に入ります。

このように

 

"参考書と過去問を同時並行に活用する進め方"

 

は知識を定着させるためには非常に重要です。インプットとアウトプットを交互に繰り返すことで効率的に記憶することができます。

勉強期間にして、標準3ヶ月あれば合格圏内に達することができると思います。

 

午後問題対策

さて、基本情報技術者試験においてここが一番の鬼門です。なぜなら、私のように開発経験がないIT業界人には、問8のアルゴリズムと選択問題のプログラム言語の理解に時間を要するからです。いや、正確には理解というより、

 

"限られた時間の中で他人が書いたコードを理解する能力"

 

が必要になってくるんです。したがって、仮に開発経験があったとしても求められるスキルが若干異なるんですね。

それでは、アルゴリズムはどのように学習すれば良いのでしょうか。私の基本方針は以下の通りでした。

 

①参考書を進めて、繰り返し処理・多分岐処理や有名アルゴリズム(探索やソート)の考え方を学ぶ。

②過去問を時間をかけて解いて、「何故この処理が必要なのか」という思考で勉強する。このとき、変数の動きを追跡して、実際にトレースしてみる。面倒くさいと思っても実際に書き出してみることが大事。

③一度解いた過去問でも構わないので、もう一度過去問を制限時間内(25分程度)に解いてみる。

 

※私が活用した参考書・過去問は下記の通り。

 

[参考書]

books.rakuten.co.jp

本書の購入者向けに公開している解説動画には非常にお世話になりました。

 

[過去問]

www.fe-siken.com

 

 

あと、これはアルゴリズムの解き方になるのですが、基本情報技術者試験のアルゴリズム問題はご丁寧に仕様を書いてくれています。2ページ程度に渡って膨大な量があるアレです。あれ、読むのも面倒だと思って、読み流していませんか?実はあの中にヒントが散りばめられています。私に限っては参考書よりも試験問題の仕様の説明の方が分かりやすいと感じたアルゴリズムもありましたよ。したがって、[アルゴリズムの説明]は時間をかけてもいいので熟読してください。その後、説明文とアルゴリズムを照らし合わせて空欄部を推測してください。

私はアルゴリズムを何問か解いて「考え方が面白い」と思った時期から点数が比較的安定してきたように思います。確かに、解いている間は「読まされている感」があり、非常に苦しい時間ですが、「あ、この変数はこのために必要なのか!」「こういうカラクリだったのね!」等の発見があれば、少しは楽しく勉強できると思います。

 

次に選択問題の「プログラム言語」ですが、私は開発経験がなかったため「表計算」を選択しました。これは、人によって考えが異なるので一概には言えないのですが、一般的に開発未経験者であれば、表計算が順当かなと思います。なぜなら、Microsoft社のExcelと仕様が酷似しているからです。そのため、今回は表計算の勉強方法について述べていきます。

私は表計算用に過去問を買いませんでした。というのも、過去問とExcelさえあれば理解することが可能だからです。

表計算はまず、関数が出力するデータと関数の指定を押さえることが重要です。

たとえば

 

[関数が出力するデータ]

照合検索:抽出範囲内の何番目に見つけたか
照合一致:検索範囲内の何番目に見つけたか
垂直照合:対応する値
水平照合:対応する値
表引き:対応する値
相対:対応する値
順位:昇順or降順にしたとき、何位かの値

 

[関数の指定]
切り上げor切り捨て:0は小数点第1位を切り上げ切り捨て、-1は1の位を切り上げ切り捨て
例:切り捨ての場合、123.456 -1 は120.456、123.456 -2は100.456となる
垂直照合:自身を1とカウントして、列位置を指定。最右端の0は一致するもの、1はそれ以下の最大値、-1はそれ以上の最小値。
水平照合:自身を1とカウントして、行位置を指定。最右端の0は一致するもの、1はそれ以下の最大値、-1はそれ以上の最小値。
相対:自身を0とカウントして、対象セルから右に何行で下に何行かを指定

 

このように、規則を覚えておくと良いと思います。

実際に表計算を解き進める際は以下を気を付けておくと良いです。

 

・セルにワークシート!が付加されていない場合は、直近のワークシートを参照している。
・説明文で「但し、〇〇の場合は」からの説明文は問題に絡むことが多い。
・照合計算の対象が必ずA列1行から指定されると思い込まない。
・セルの値に加算するのか行に加算するのか明確にする。
・選択肢を始めの方に決定しても、その他の選択肢も消去法で確認しておく。
・A=1又はB=1を否定すると、A=1ではない且つB=1ではない。
・絶対参照をつけるか否かの問題は、複写したときに不都合が生じる場所を特定することが大切。

 

また、学習方法として、自分が納得がいくまでExcelを活用して勉強しました。

たとえば、平成26年度秋期の問13では、

 

f:id:MiyquN:20190525160047j:plain

 

こんな見るからに面倒くさそうなこともしていました(笑)

でも、せっかくPCにExcelという表計算と似た仕様のソフトが標準で入っているので、それを活用する他ないと考えていたんです。

マクロの学習はExcelでコードとして実装できるのが一番なのですが、それは難しい話なので、コードの一つひとつをなぞりながら、結果をExcelに入力するだけでも分かりやすいと思います。

 

続いて、それ以外の選択問題への対策ですが、個人的には文系の方には以下の問題を選択することをおすすめします。

 

・データベース

・ソフトウェア設計

・マネジメント系

・戦略系

 

計算が問われることが比較的少なく、ストラテジ系の問題は文系には馴染み深いからです。私は午前問題と同じく、通勤時間を活用して下記サイトで学習しました。計算問題が出たら、スマホのメモ機能と電卓を使用していました。

 

www.fe-siken.com

 

午後問題に関しては過去問を解くことは意味ないという意見もあるのですが、そんなことはないです。なぜなら、本試験は「傾向を知る=相手を知る」ことが非常に重要だからです。傾向を知ることを念頭に置き、繰り返し過去問を解いてください。私はこのサイトにある過去問をすべて解きました。これは振り返ったときにかなり自信になります。

午前問題はできるのに、午後問題が解けないという方は

 

"暗記型の勉強に頼っており、基本を理解していない"

 

可能性が高いです。そのため、私は「午前対策を包含した午後対策」を行いました。そこで活用したのが「分散学習帳」というアプリです。

 

分散学習帳

分散学習帳

  • keigo matsumaru
  • 教育
  • 無料

 

午後試験は「文章題」です。国語の問題と言われる所以はここにありますが、この分散学習帳で「午後問題に似た文章題を作成する」のです。

たとえば、私は「企業と法務」対策で下記の問題をオリジナルで作成しました。

 

(以下問題文)

次の空欄を埋めよ。

財務状況を分析するため参考にする財務諸表としては、「損益計算書」「貸借対照表」「キャッシュフロー計算書」が挙げられる。
損益計算書における項目の算出方法は以下の通りである。


・売上総利益(粗利)=売上高-(a)
・営業利益=売上総利益-(b)
・経常利益=営業利益+(c)収益-(c)費用
・税引前当期純利益=経常利益+(d)利益-(d)損失
・当期純利益=税引前当期純利益-(e)


貸借対照表における総資産は(f)+固定負債+流動負債で求められる。つまり、貸借対照表の左側(借方)に該当する総資産と右側(貸方)に該当する(f)・負債の金額は常に等しくなる。そのため、貸借対照表は「バランスシート」や「BS(Balance Sheet)」と呼ばれる。貸借対照表において、自己資本比率は(f)/(f)+固定負債+流動負債で求められる。
キャッシュフロー計算書において、営業活動によるキャッシュフローは、営業利益が増加したり、保有している製品在庫を削減すると、それに応じて(g)する。製品在庫が増加したり、売掛金が増えると、それに応じて(h)する。投資活動によるキャッシュフローは固定資産の売却により現金が増えると、それに応じて(i)する。現金で投資を行うと、(j)する。財務活動によるキャッシュフローは借入金が以前より増えると、(k)する。債務返済や株主還元を行うと(l)する。在庫数を過不足なく適正に保ち、資材調達コストの抑制やキャッシュフローの悪化を防ぎ、在庫改善から利益を上げていくためには(m)という管理手法が有効である。これは、BOM(Bill of Material, 部品構成表)をもとに製品部品を展開し、生産に必要な部品数を割り出した後、調達までに必要なリードタイムや工数を算出し、部品ごとの値段や組み立て順まで記載するものである。(m)の作業手順のうち、BOMを用いて総所要量の計算を行い、(n)を用いて正味所要量計算(総所要量から在庫や注文残を除いた、実際に手配すべき量を計算)を行う。
以下の構成表において、製品Aを300個出荷しようとするとき,部品bの正味所要量は(o)個となる。ここで,A,a,b,c の在庫量は以下の在庫表のとおりとする。また,ほかの仕掛残,注文残,引当残などはないものとする。

 

構成表
品名A:構成部品aが3個、構成部品bが2個
品名a:構成部品bが1個、構成部品cが2個

在庫表
品名A:100個
品名a:100個
品名b:300個
品名c:400個

 

(以下解答)

a:売上原価
b:販売費及び一般管理費
c:営業外
d:特別
e:法人税
f:純資産
g:増加
h:減少
i:増加
j:減少
k:増加
l:減少
m: MRP(Material Requirement Planning, 資材所要量計画)
n:在庫状況
o:600
製品Aを300個出荷したいのですが、現在の在庫は100個なので残り200個は製造を行うことになります。

製品Aを1個作るのに構成部品aが3個、構成部品bが2個必要なので、200個製造するためには、aが600個、bが400個必要となります。

また構成部品aを製造するためには、構成部品bが1個、構成部品cが2個必要ですが、aには100個の在庫があり500個の製造で間に合うので、bが500個、cが1,000個必要となります。

ここまでに必要になった構成部品 b の数量は、

 400+500=900個

これから、現在の b の在庫300を引くと、

 900-300=600個

以上の計算から、構成部品bの正味所要量は600個であることがわかります。

 

分散学習帳の利点は「自分で問題を作成する」ところにあります。自分で問題を作成していくと「出題者」の気持ちが分かるんですよね。時間がかかる作業ではありますが、効果は折り紙つきですので是非皆さんもやってみてください。

 

終わりに

いかがだったでしょうか。私的には、平成最後の基本情報技術者試験ということで合格できて喜びもひとしおでした。

IPAによれば、来年春から大幅な出題変更がされるということですので、そちらへの対策もいずれは述べていければと思っております。

合格率20%の国家試験ということで、相応の努力が必要になりますが、無駄な勉強は一切ありません。挑戦される方はぜひ、合格を勝ち取ってください!