情報の問題はテキストにない問題も結構あって、今後も継続的に情報収集しないといけないですが、苦戦しそうだなと思っています。
https://www.jf-cmca.jp/attach/test/shikenmondai/1ji2020/F1ji2020.pdf
オブジェクト指向
オブジェクト思考の部分では、カプセル化やメソッド機能といった用語や役割が、自分の中でまだしっかり整理できていないと感じており、再度学習し直す必要があると思っています。
今回の試験の部分を元に、AIとも壁打ちして理解した内容を記載します。
オブジェクト思考って結構言葉がわかりにくくて、メソッドや機能、メッセージそしてカプセル化、クラスあたりが出てきて、それぞれの内容が理解できているかが問われる問題が多い気がしています。
それぞれの言葉について、理解した内容を記載します。
オブジェクト思考では、「データ(状態)」と「処理(機能)」をセットにして扱います。このセットの単位を オブジェクト(Object) と呼びます。
オブジェクトの“機能”にあたる処理のことを メソッド(Method) と言い、ほかのオブジェクトがこのメソッドを呼び出すことを メッセージ(Message) と呼びます。
つまり、オブジェクト同士は「メッセージを送り合うことで処理を依頼し合う」という動きをします。そして、このオブジェクトを共通の設計図としてまとめ、同じ性質・同じメソッドを持つ“ひな形”として管理するものを クラス(Class) と呼びます。
クラスは「設計図」であり、そこからつくられる実体(実際に動かすもの)がインスタンス(Instance)です。また、内部のデータを外部から勝手に触れないようにし、必要な操作だけをメソッドとして公開する仕組みを カプセル化(Encapsulation) と言います。
これによって、データの不整合や予期しない変更が防げるため、プログラムが壊れにくくなります。
カプセル化するのは、いろんな人が開発に関わるので、あまり触れられたくない所は隠しておく必要があるんですよね。権限管理みたいな。見えないところを作って、見せていいところ、使っていい機能を限定して公開して、使えるようにするといったコントロールをするイメージです。
データの整合性
またデータのACID特性では、一貫性と独立性、そして原子性のあたりが特に分かりづらく、混乱しています。言葉と意味が分かりずらいですよね。
原子性は、データに問題があった場合分裂せずにちゃんとロールバックするもの。一貫性は、データのルールとのこと、在庫がマイナスにならないとか。独立性はいろんなところでデータのやり取りがあったとしても、最終的には結果が一致しているイメージ、同時実行しても、順番に1つずつ実行したかのような結果になる。一貫性と独立性の部分で混乱してたんですが,この整理でなんとか今のところスッキリしています。
AIの機械学習
AIの機械学習のところは、今まで解けなかったんですけど、ようやく頭に入ってきました。
教師あり学習と教師なし学習があって、教師あり学習の場合は例えば手書き文字の認識などで使われたり、教師なし学習であれば分析や予測などに使われるという理解ができました。
まずは「教師あり・教師なし学習にはこういった違いがある」ということを押さえることが大事なのかなと思いました。
まとめ
情報においても、運営管理と同じように、項目同士に明確なつながりがあるわけではなく、幅広く知っておく必要がある内容が多いので、一つひとつ知識をつけていく必要があるなと思っています。
特に ACID特性やオブジェクト思考で学んでおくべきことは、しっかり理解して押さえておきたいと感じています。
なかなか2つまでは思い出せて話せるものの、3つ目が抜けやすくて難しいと感じています。思い出せない場合は、フラットに全体の学習マップに戻り、項目をいもづる式に自分の記憶から引き出していき、その中で過去問で出てきた言葉を思い出すようにするのが良いのかなと思っています。
