IT系ではない社会人がITパスポートを勉強すると基礎知識が少ないので大変だと思います。

でも今はなんて便利な世の中!

お金をかけずに勉強ができるので

「ちょっと暇だから受験してみようかな」も可能です!

 

頼りになるのがこちらのサイト。

 

まず自分の実力を知る意味でも好きな過去問を解いてみましょう。

個人的には、自分が解いてみようと思っている年数の古いものからやってみると、

試験の傾向がつかめると思います。

たとえば600問(6年分)と思っているなら、

現在令和5年が一番最新なので平成31年春期からがいいと思います。

 

PDF1回分100問解いてみて、

解説は1問ずつ見ていく方がいいです。

そうしないと、本番では1問1問正解か不正解か分からない状況なので不安が増してしまいます。

本番環境になれてしまう方がBetter。

 

間違えた回答は、解説ページのどの分野に分類されているものか確認しながらメモしていくのがいいです。

(じゃないと、私のように1ヶ月も「これって一体何?」状態に陥ってしまうかも笑い泣き

 

イマイチ説明だけでは分からない場合は、Youtubeがおススメ!

今は色んな方が説明してくれているので、自分に合う人を探せばシリーズで理解できるので便利です。

もう少し詳しく知りたいと思う人はITパスポートの動画ではなく、『基本情報技術者試験』で見てみるのもおススメ。

結構範囲が重なります。

 

この方、話し方とかまとめ方とか私には合いました。

他にも過去のブログで紹介しているYoutuberさんもおススメです。

 

 

ながら聞きにはこちらがおススメ。

 

機械の読み上げなのでときどき変なアクセントだったり、しり上がりで若者言葉か疑問形か?と違和感もありますが、

そのマイナス点を補うくらい便利だと思います。

 

過去問は年代別だけではなく、

「過去問道場」→「分野を指定して出題」がかなり便利!

苦手箇所を集中して解けるので一通り過去問を解いた後にはすごく助かります!

 

 

あとは、出題範囲を知る事も大切。

 

自分が受ける時のシラバスを確認しましょう。

『試験要綱』も載っていますが、シラバスの方が単語までしっかり載っていて分かりやすい。

私が受けるシラバスVer.6をパーと目を通してみただけでも、

OODAループ、CDP( Career Development Program),階層型組織,インタビュー(構造化,半構造化,非構造化),最小二乗法,回帰分析, 箱ひげ図,ロジックツリー,コンセプト マップ,シェープファイル,共起キーワード,チャートジャンクなど、

私がやった過去問には出てきていない単語がありました。

とはいえ、過去問が8割取れていれば合格したという話が結構あるのでここまでやらなくてもいいかもしれません。

(私は心配性なので気になってしまいますが)

 

 

あと、何気にChatGPTも分かりやすいです。

闇雲に信じるのはダメですが、ChatGPTの結果を改めて自分のでググって合っているか再確認まで出来たらよい教材になると思います。あと、アルゴリズム系はやっぱり強いのではないかと思います。

たとえばこの問題。

解説もちょっと難しすぎて・・・

でChatGPTに聞いてみたらこんな風に教えてくれました。

 

ChatGPTの回答
ChatGPT

与えられたプログラムを解析して、手続き printArray を呼び出したときの出力を求めましょう。

まず、プログラムの流れを確認します。

  1. 配列 integerArray が与えられています:{2, 4, 1, 3}
  2. 2 つの for ループがネストされています。外側のループは n で、1 から integerArray の要素数 - 1 までの値を取ります。内側のループは m で、1 から integerArray の要素数 - n までの値を取ります。
  3. 内側のループで、隣り合う要素を比較し、必要に応じて交換します。

プログラムの実行をシミュレートして、手続き printArray の呼び出し時の integerArray の状態を確認します。

初期状態: {2, 4, 1, 3}

1回目の外側のループ (n = 1):

  • 内側のループ (m = 1): 2 < 4 なので、交換なし。integerArray: {2, 4, 1, 3}
  • 内側のループ (m = 2): 4 > 1 なので、値を交換。integerArray: {2, 1, 4, 3}
  • 内側のループ (m = 3): 4 > 3 なので、値を交換。integerArray: {2, 1, 3, 4}

2回目の外側のループ (n = 2):

  • 内側のループ (m = 1): 2 > 1 なので、値を交換。integerArray: {1, 2, 3, 4}
  • 内側のループ (m = 2): 2 < 3 なので、交換なし。integerArray: {1, 2, 3, 4}

手続き printArray を呼び出した結果の integerArray の状態は {1, 2, 3, 4} です。

したがって、正解は ア 1,2,3,4 です。
 

USER

外側のループ、内側のループとはどういう意味ですか?
 

ChatGPT

すみません、説明が分かりにくかったですね。外側のループと内側のループについてもう少し詳しく説明します。

プログラム中で使われている外側のループと内側のループは、繰り返し処理を行うための仕組みです。それぞれのループは、プログラムの特定の部分を複数回繰り返し実行するために使用されます。

外側のループ(外側のforループ): これはプログラムの最も外側にあるループです。このループは、指定された回数だけ繰り返し処理を行います。通常、配列内の要素を順番に処理するために使用されます。例えば、与えられた配列の全ての要素に対して特定の操作を行う場合に使用します。外側のループの制御変数(ここでは n)は、ループが何回繰り返されるかを制御します。

内側のループ(内側のforループ): 外側のループの内側に存在するループで、通常は外側のループの各繰り返しに対して内側のループが全て実行されます。内側のループは、外側のループの制御変数や他の変数に依存するような状況で使用されます。内側のループの制御変数(ここでは m)は、内側のループが何回繰り返されるかを制御します。

このプログラムの場合、外側のループは n という変数で、1 から integerArray の要素数 - 1 まで繰り返されます。そして、内側のループは m という変数で、1 から integerArray の要素数 - n まで繰り返されます。内側のループが外側のループの各繰り返しに対して全て実行されることになります。

このようなネストされたループ構造を使うことで、配列内の要素を順番に処理しながら、特定の操作を実行したり、要素同士の比較や入れ替えなどを行ったりすることができます。
 

USER

内側のループ、for(mを1から(integerArrayの要素数-n)まで1ずつ増やす)ですが、なぜ-nなのでしょうか?外側と同じくー1ではだめですか?
 

ChatGPT

申し訳ありませんが、誤解を招く説明をしてしまいました。正しい解説を以下に示します。

for(mを1から(integerArrayの要素数-n)まで1ずつ増やす) という部分で -n が使われるのは、内側のループの制御です。これにより、外側のループのカウンタ n によって、内側のループの範囲が制御されるのです。

外側のループが進行するにつれて、内側のループの実行範囲は狭くなります。最初の外側のループの時点では、内側のループは全ての要素を対象にして操作を行いますが、2回目の外側のループでは最後の要素(操作の対象から除外される要素)がすでに正しい位置に移動しているため、それを考慮して内側のループの範囲を狭める必要があります。

具体的に説明します:

  1. 初めて外側のループ(n = 1)が実行されるとき、内側のループは m が 1 から 要素数 - 1 まで実行されます。つまり、全ての要素が対象となります。

  2. 2回目の外側のループ(n = 2)が実行されるとき、内側のループは m が 1 から 要素数 - 2 まで実行されます。一番大きな要素(最後の要素)はすでに正しい位置に移動しているため、対象から除外されます。

このように、外側のループが進行するにつれて内側のループの実行範囲を狭めることで、最大値を末尾に持っていくバブルソートのようなアルゴリズムを実現しています。

したがって、-n が使われる理由は、内側のループの範囲を制御して、正しい位置にすでに移動した要素を除外するためです。

 

意味不明だった部分も会話形式で教えてもらえるって、

本当に最近のAI技術にはビックリですあんぐり

 

 

ということで、ITに縁のなかったみなさまも、

一緒にITパスポート受けてみませんか?