新米SE日記

新米SEが学習成果をまとめる備忘録です。

基本情報技術者試験 第一章基礎理論

会社で支給されたItecの教科書に沿って進めていきます。

1章は (1) 数値表現 (2) 論理演算とシフト演算 (3) BNF逆ポーランド表記法 (4) データ構造 (5) アルゴリズム(6) プログラミング言語から成っています。

 

(1) 数値表現については基数変換の割り算して並べる、掛け算して1の位を並べるという手続きと浮動小数点表示、各種誤差の意味合いあたりが間違えそうだったかな?

浮動小数点について具体的に内部でどのように正規化や数値化がされているのかがこの教科書ではかなり不親切であるように思うので必要があれば調べておきたいポイントではある。

誤差については丸めと打ち切りはそのままなので情報落ち(大と小)と桁落ち(ほぼ等しい)を混同しないように。

 

(2) 論理演算は高校数学を記憶にとどめている方は大丈夫ですが、特定ビットを反転させるなどは試験で便利だったので記憶しておくべきでしょうね。

0and  が全て 0、 1or がすべて1、 0xor は無変化、1xor が反転になります。

前半は反転させて後半はそのままなどは前半1後半0のビット列と xor をとればOK

実務でもこういう操作は行われているのだろうか・・・?

 

(3) BNF逆ポーランド表記法について、前者は再帰的な書き方に慣れるのが少し難しいですがどうにもならんですね。演習して慣れるしかない。後者については計算の優先順位が高いものを()で括ると理解しやすかったかな。もとに戻す時は左から順に演算子と後ろ二つの文字を組みにしていきます。

例1 : A+B*C-D=A+(B*C)-D=A+(BC*)-D=(A+(BC*))-D=(ABC*+)-D=ABC*+D-

例2 : AB+CDE/-*=(AB+)C(DE/)-*=(A+B)C(D/E)-*=(A+B)(C(D/E)-)*=(A+B)(C-(D/E))*

                             =(A+B)*(C-D/E)

 

(4) データ構造ではリスト・スタック・キュー・ツリーの4種が出てきました。リストは単方向の場合末尾は末尾しか見れないので最後から2番目は先頭から来なければならず、面倒であることを覚えておけばいいかな?

スタックとキューについては問題で先にデータが入っている場合があることに気を付ければ大丈夫でした。基本的には絵をかいて整理していけば分かるはず。

個人的にはツリーの深さ優先順が3種とも感覚が掴みにくかったので要復習です。ツリーはブログ上で表現しにくいので紙にかいてやろうと思います。

 

(5) アルゴリズムについて整列・探索のアルゴリズムが出てきますが、名前とどこを比較するか、参照回数だけ覚えておけば後は無価値だと思っています。午前の知識は午後のアルゴリズムを解くに当たってなんら役に立ちませんでした。基本的なプログラムの表記などを覚えるほうが圧倒的に役に立つように思うのでいずれはそちら方面に手を出していきたい

 

(6)プログラミング言語について、全てアルファベット略語なので兎に角どれがどれか覚えにくい><

Java : オブジェクト指向 今後業務で習う

JavaScript : ブラウザで使う オブジェクト指向

JavaServlet : サーバ上で使う 動的にHTMLを作成するらしい。動的って要求を受けたら働くという認識でいいのだろうか

JavaApplet : サーバ上にいて、ダウンロードされてブラウザで動く シンクライアント的なイメージなのだろうか

JavaBeans : よく使われる機能を部品にしてある 再利用可能なコンポーネント

JDBC : DBはデータベースの事。JavaのプログラムがDBにアクセスするためのAPIWikipediaいわくAPIとはアプリケーションプログラミングインターフェースの略で端的に言えば簡単にプログラミングをするためのインターフェースとのこと。DBをJavaのプログラムで操作するときに見やすい画面の形式なのだろうか。実物を見てみたい

Ajax : Javaの親戚最後の人。ブラウザとサーバがjavaScriptを介してXML形式のデータを非同期に通信する。地図の描画が最たる例

PHP : ウェブアプリケーション開発用のスクリプト言語。個人公開のブラウザゲーとかはこれで動いてたよねぇ

SGML : ISOの文書構造定義言語。タグを用いて文書構造を記述

HTML : ウェブページ作成用の言語。このブログだってこれで出来てるはず。文書を記述し、デザイン部分(フォント・配置・色など)はCSSというやつがやってくれる

XML : SGMLをもとにしており、タグやリンクの特徴に加えてDTD機能とやらでユーザー独自のタグ・文書・データ構造が定義できるらしい

 

他にもVBScriptとかが出てきたような気はするが教科書にはこれしか出てこなかったから今日はこれで終わり。各言語についてどのような記述なのかなどは奥が深いであろうので配属が決まって業務に関係ありそうなものは勉強していくつもり。

 

なんだかんだ2時間くらい勉強できたけど、復習でこれだけかかるなら新しく勉強するとなると書くの大変そうだなぁ