基本情報科目B計画~その2

 さて、前回の記事で立てた下記方向性ですが、現時点ですでにパーフェクトラーニングの対策問題①~②の一読まで完了しております。前回記事の後半で書いていた今後の方向性を見直し、今春の基本情報科目A免除での科目B試験申し込みを見据えた新たな計画を発動させていきたいと思います。

<新方向性>

IPA公式ページ掲載の科目Bサンプル問題を100分で実施

・山本三雄「令和05年上期基本情報技術者パーフェクトラーニング問題集」(技術評論社、2022)対策問題③〜④の科目Bの部分を解いていく

 

 基本情報科目Bの主な問題構成は、下記の通りです。「←」を付けた部分の対策を重点的に進めていきたいと思います。

<科目B問題構成と重点対策対象>※1回分につき

・プログラミングの基本要素:7問 ←

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

・プログラミングの諸分野への応用:4問 ←

・情報セキュリティ:4問 ←

 

 期限的な目標ですが、できるだけ今月中にパーフェクトラーニング対策問題③~④(40問)の実施まで完了させたいと考えております。「データ構造及びアルゴリズム」の分野については、youtubeの動画解説を見て、詳細トレースを実施するまで理解できないレベルのものもあるため、その部分はは3月に回していきたい考えです。

 基本情報科目Bでは、特殊な数学的演算法みたいなのが問題文中にドシドシ出てきてそういう意味では面白いなと思うので、学習環境を確保できていることに感謝して、時間を大切に進めたいと思います。長期的な展望として科目B合格後はJavascriptとかLinux、あるいはJAVAとかの分野にも手を付けていって、応用情報にも早く挑戦して、もっと年収を上げたいです。筋トレだと思って頑張りましょう!やればできるはず!

アルゴリズムの概念・語源・種類

基本情報技術者試験の科目Bの勉強を進める中で、そもそもアルゴリズムって何だと思って調べてみたので記事を書きます。結論としては「公式」とか「関数」に近い概念になるかと思います。

アルゴリズム:公式、関数

・プログラム:コンピュータに対する指示

例えば拳銃を例に取ると、引き金を引くと弾が出る構造がアルゴリズム、「弾を込め、安全装置解除、照準合わせ、撃て!」みたいな順番で指示を出すのがプログラムって感じですかね。哲学的にいうと、アルゴリズムが形而上、プログラムが形而下的な概念になるかと思います。

 

アルゴリズムの語源が、西暦800年ごろのペルシア(バグダッド)の天文学者アル=フワーリズミに因むことを鑑みると、20世紀になって電子計算機(コンピュータ)が発展してきた時に、それまでに蓄積されていた様々なアルゴリズムを、コンピュータ上で扱えるように人々が改良した結果、今日ではPCさえあれば誰でもがそのアルゴリズムを扱う、もしくは新たなアルゴリズムを開発する機会に預かっている、という状況かと思います。

 

ではアルゴリズムにはどんな種類のものがあるのでしょうか。webで調べると、以前書いた7種のソートアルゴリズムと、線形探索・2分探索・ナイーブサーチ・KMPサーチなどの探索アルゴリズムは有名だという記事が多く出てきますが、ある程度の推論や判断ができるAIなどにも、特別な公式(アルゴリズム)が使われているはずでし、既存のアルゴリズムを組み合わせ、新たなアルゴリズムを生み出すことができるアルゴリズムもあるはずです。公式をどう応用させれば、現実世界に役立つプログラムが書けるのか、学んでいきましょう。

syota.hatenablog.com

さて、基本情報技術者試験科目B対策の進捗ですが、こちらの記事で書いた計画の4日目までが完了済みです。富田良治「2023-2024基本情報技術者科目Bの重点対策」(アイテック、2023)を一読した後は、山本三雄「令和05年上期基本情報技術者パーフェクトラーニング問題集」(技術評論社、2022)対策問題①〜④の科目Bの部分を解いていけるといいですね。年末年始に向け頑張りましょう!

syota.hatenablog.com

スパルタ式!基本情報科目Bトレーニングメニュー

前回こちらの記事で、

「7種のソートプログラムのモデルを暗記し、データがどう動けば正しくプログラムが実行されたことになるかのイメージが必要」と書きました。

 

syota.hatenablog.com

 

時間的コストは掛かりますが、試験会場でソートに関する出題があった時「データがどう動けば正しくプログラムが実行されたことになるか」イメージするには、下記5点のメニューでトレーニング実施するといいんじゃないかなと思いました。

・自分で何らかの配列を捏造して問題文の擬似言語をたどる

・Webで「ソート 可視化」で検索して出たGif動画でイメージを確認

PHPソート関数の種類を知る(asort、ksort、usort、rsortとか)

・Xampp環境で確認してみる

Pythonで書かれたソート関連のコードをAnaconda環境で確認してみる

 

また仕事で活かすことを考えると、「~の言語の~のソート関数は~のアルゴリズムを使っているので、今回のケースに最適です」とか言えるように成長できると、年収上がるんじゃないかなと思います。

試験対策としては、バケットソートがビンソートだったり、バブルソートのことを基本交換法と言ったり同じアルゴリズムでも別名があるみたいなので注意したいですね。

 

ちなみにWikipediaで「ソート」と調べると、30種類以上のソートアルゴリズムの特徴を主に下記2つのファクターで優劣つけた表が載ってます。下記2点だけで考えると、マージソートが良さそうかなと思います。

・平均計算時間

・メモリ使用量

 

引き続き、頑張りましょう!

ソート7種のプログラムモデルをイメージしよう

さて基本情報科目B計画2日目、Excersize4-1~Excersize4-6として、配列をソートするプログラムのトレースの練習をひと通り終えました。

結論としては、下記7種類ほどのソートプログラムの型(形)を暗記し、データがどう動けば正しくプログラムが実行されるかを試験会場でイメージできるまで、何度もトレースの練習をする必要がある感じです。

・選択ソート

バブルソート

マージソート

・挿入ソート

シェルソート

クイックソート

ヒープソート

なお3日目Excersize4-7~Excersize4-11は、主にサーチ関数からの出題となります。12月最初の土日で、3日目について投稿したいと思います。

トレース表で科目Bを打破しよう

前回こちらの記事で科目B計画を立てたうち、1日目は完了済み、現在2日目に突入中です。

科目B問題を解く上では、表を作ってサンプルデータを代入(トレース)していくというのが大事なんですね~。解答を見ずに正しくトレース表を作るのが、目下の目標となりそうです。

科目Bは、去年までは「アルゴリズム」の問題としてカテゴライズされていて、だいぶ難しいという評判だったのを思い出しました。問題集の解説文を読んでも理解できなかったら、youtubeの解説を見ながらやるしかないかなと思います。

syota.hatenablog.com

Excersize4-1~Excersize4-6は、アイテック社のオリジナル問題。頑張りましょう!

基本情報科目B計画~その1

前回、こちらの記事でこちらの3つを宣言したところ、実施できました!

・鍵の複製

・革靴のメンテ

・クリーニング

syota.hatenablog.com

 

はてなブログに書くと実現できる気がしてきましたので、やらなきゃいけないこと、じわじわ投稿していこうと思います。

 

まずは、こちら

富田良治「2023-2024基本情報技術者科目Bの重点対策」(アイテック、2023)

Part3-6のエクササイズ、4分野37問を、7日間で進めます。

こんな感じのスケジュールですね。

------------------------------------------------

1日目

Excersize3-1~Excersize3-7 データ構造

2日目

Excersize4-1~Excersize4-6 アルゴリズム

3日目

Excersize4-7~Excersize4-11 アルゴリズム

4日目

Excersize4-12~Excersize4-16 アルゴリズム

5日目

Excersize5-1~Excersize5-6 諸分野応用

6日目

Excersize6-1~Excersize6-4 セキュリティ

7日目

Excersize6-5~Excersize6-8 セキュリティ

------------------------------------------------

実施環境は基本的に自宅、どうしても集中できなければ駅前のネットカフェ、さらにどうしても節約したいなら駅前の自習室、としたいと思います。

 

1日空いてる日で7日間取るとすると、年内に完遂可能か微妙なところですが、とりあえ年内目指して着手してみましょう。似たような目標立ててる方、そろそろやりましょう!

土日はもっぱら引きこもり

今日は部屋に引きこもって下記3つを調べてました。

MovableTypeの管理画面について

・ブログのリンクについて

phpについて

お昼は近くのスーパーで買ってきたのり弁。お部屋の片付けもできました。

明日はMisterminuteで鍵の複製と革靴のメンテ、あとできれば洗車とクリーニングもしちゃいたい。早く寝て明日に備えましょう。