ITパスポート、基本情報に受かる具体的な方法(色々変わってスミマセン)

記事
IT・テクノロジー
それぞれITパスポート、基本情報にも専用の学習サイトがあったはずです。
確認します。ありました。それと学習の参考書を購入してから学習します。

まず、学習の参考書を全部しらみつぶしに読みます。解きます。覚えます。
少なくとも参考書は2週してください。計算問題はノートも使ってみてください。そして、重要なところは付箋か、赤ペン、あるいは蛍光ペンで線を横に
引いてください。あとで読み返した時に、何が重要だったかすぐに探し出す為です。

EXCELか、グーグルのスプレッドシートで
毎日、何時間勉強したか下記のように書いてください。
基本情報は300時間勉強すれば十分なので、ある程度の目安になるはずです。

studytime.png




次に、過去の問題を専用の学習サイトで学習します。間違えて当然です、
知らないのですから。
逆に変に答えだけ覚えて何の足しにもなっていなかったのは自分だったので
よく分かります。間違えを恐れずに、解いていない問題や間違えた問題だけを解き続ける努力が必要です。平成21年度から令和8年まで、解き続けてください。
ebinguhouse.png
この画像も印刷してつかってください。いわゆるチェックシートです。
実際に勉強したならば◎をつけるか、☑をつけてください。
間違えた問題が多かった場合は✕を付けて、多めに復習しましょう。

上の画像が細かすぎて見えにくいと思った方は自力で
エクセルで書いて印刷するのをオススメします。
それでも自力じゃエクセルで描けない人の為にスマホで印刷結果を写メしました。

260827173807366.JPG

ポイントは倍々で覚えておくと記憶に定着しやすいということです。
初回、3時間後、6時間後、12時間後、一日後、二日後、四日後、8日後、16日後、30日後、2か月後で定着します。
それらの時系列をこの印刷結果の横に付け足して貼り付けて、
覚えていくのが良いと思います。

あと、キーワードが何々ならば何々という単語が出てくると覚えるのも、
全て暗記しなくてもよくなる効率の良いやり方です。もっとも、もっと
突っ込んで問われたら途端に効かなくなる諸刃の剣ですが。

(注釈)出来れば、他の選択肢で聞いた事も見た事も無かった問題・用語も覚えると、合格点に達しやすいです。
(※本気で受かりたければ全部暗記してもらうことになります)

過去20年分の過去問を解いて8割、9割取れるようになればA試験もB試験もバッチリです。ただし、答えの丸覚えはダメです。ただしい知識と解き方を覚えましょう。

覚え方の要所ですが、説明すると、
ノートに書くのは、個人的には大ススメですが、効率が悪すぎる事が
判明したので、普段は要約して口で説明してみて、画面をスクロールしてみないで答えや他の選択肢を口で説明できるか?まで落とし込みます。
それでもなお、忘れてしまう場合は、ノートに書いて、こちらでもやはり、
ノートを隠して説明できるか?まで落とし込みます。

その上で、覚えても損はないけど、一部下品な覚え方がありますが、
ついて来られるでしょうか?
語呂合わせというのが強力な武器です。


まず10進数から2進数に変換する方法を見ていきましょう。
10進数を2進数に変換するには÷2(悪い兄さん)した後に
余り(にも酷い罰)を求めて0(エロ)と1(位置)に変換すればOKです。

178÷2=89...0
89÷2=44...1
44÷2=22...0
22÷2=11...0
11÷2=5...1
5÷2=2...1
2÷2=1...0
1÷2=0...1
除数が0になったら2の割り算は終了して下から逆順に高いビットとする。
10110010(2)
128+32+16+2=160+18=178
これが178(10)の2進数です。

0と1の2で割った余りが正しいかどうか確認する良い方法があります。
その2で割られた数が奇数ならば余りは1、
偶数ならば0になる特性を利用しましょう。

2進数の足し算 1+1は十
0+0=0 0+1=1 1+0=1 1+1=10
2進数の引き算 十-1は1
0-0=0 0-1=-1 1-0=1 1-1=0 10-1=1

変数の符号の反転はビットをXORで全ビット1を立てて
+1すると出来る。反転+1(へんたい+1)

これにより、加算だけで減算ができてしまう。
3-2=1なのは当たり前だが2進数で確認してみよう

0000 0011(3)
0000 0010(2)
まずこれ(2)を反転+1(へんたい+1)
   0000 0011
+1111 1110
------------
   0000 0001

シフト演算と固定小数点
0000 0001(1)を左にずらして空いたビットに0を埋めると
0000 0010、つまり、2なので、2倍になる。
では、これを応用して3倍にするには
Nが元の値だとすると、
2N+N
という式で求まる
左シフト1回と値そのものを足せば3倍になる。

ということは、そもそも、2進数の桁の値そのものの数だけ桁をずらしてシフト+加算すれば良いだけとなる。

例えば、さきほどの例でいうと0001x0011は0001の0010倍と0001の0001倍を足せば3倍になるというのは明らかな考えになるかもしれません。
ということは、0011x0111は、0011の0100倍と0011の0010倍と
0011の0001倍を足せば7倍になるのも明らかです。

この時の0100倍とか0010倍とか0001倍のことをシフト演算と呼びます。
0100倍が左シフト2回なので4倍です。2^2=4です。
もっと言うなら、2*2=4です
0010倍が左シフト1回で2倍です。2^1=2です。
もっというなら2*1=2です
0001倍は0ビット左シフトで等倍です。2^0=1です。
もっと言うなら1*1=1です。


これが2進数の任意の掛け算の基礎です。

割り算は掛け算がシフトと加算で行けたので2進数の割り算も、
もしかしたら減算とシフトで
いけるんじゃないか?と思った人は鋭いですが、残念ですがハズレです。

例えば、2^N乗の割り算のみならば右シフトは使えます。
32÷8は4ですが、0010 0000(2)を右シフト3回すると
0000 0100となります。

(-4)を符号を持ったまま右シフトするには算術シフトが合っている
そして、算術シフトの右シフトは最上位ビットが変わらないという特徴がある。つまり、値が負の固定小数点は最上位ビットが1で、
最上位ビットが0の固定小数点は正となる。

0000 0100とする
これを符号反転すると
1111 1100(するとこうなる)
これを算術右シフトすると
11111110(-2)となる。

リトルエイリアン、リトルエンディアン(小さい順)
ビッグエイリアン、ビッグエイディアン(大きい順)

0xABCDEFFFとあったら
リトルエンディアンはFF EF CD AB
ビッグエンディアンはAB CD EF FF
と保存する
インテルもファミコンの6502のCPUとメモリはリトルエンディアンです。

メモリインターリーブ、(リーブ21)メモリに並列に高速にアクセス

ダイレクトメモリーアクセス(DMA)
、専用の回路でメモリに直接(ダイレクトに)CPUがアクセスする

アプセト根暗デブ、OSI(おーS愛)参照モデル
高い順
アプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データリンク層、物理層

UDP 正確性より速度重視、ネットゲーム用(sokUdo)
TCP 速度より正確性重視、精密な計算用(Tadashiku)

ネットワーク層->ルータ(寝る)
データリンク層->ブリッジ(デブ)
物理層->リピータ(ぶりっこ)

FTP->ファイルを転送するプロトコル(File Transfer?)
NTP->時間を取得するプロトコル(NetworkTime?)
SMTP->メール送信(SendMail?)
POP3->メール受信
NNTP→ニュースを扱うプロコトル

IPV6の

DNS->ドメインネームから数字のIPアドレスを伝える
(ドメインネーム解決)

DHCP->(ダイレクトsHutoku)ネット接続時にIPアドレスを取得する

ブレーンストーミング
どんな話題でもいいから話し合いをしてアイデアを出す
自分だったらファミコンasmや3DCG技術の話題を出す(笑)
そして批判禁止で自由奔放な考えを出すのがコツ。

ping->ポートスキャン、つまり脆弱なポートが無いか確認している)

ネットワークアドレス
ブロードキャストアドレス
について
192.168.128.240
255.255.255.128
の場合、192.168.128.????なので、
2進数に変換します。

1111 0000(240)

すると、この上の0000はホストアドレスと呼ばれますが
ここに1111を入れるとそのアドレスは、192.168.128.255となり、ブロードキャストアドレスとなります。逆にこの場合においてホストアドレスがすべて0000の場合、ネットワークアドレスとなります。

サイダー表記の場合----------------------------------------------------------
192.168.128.255/27

192.168.128.0b11100000
つまり、下位5ビットが32-27で5なので、ホストアドレスです。
ブロードキャストアドレスとネットワークアドレスのルールはすぐ前と同じです。
192.168.128.224です。

コアコンピタンス
他社にまねの出来ない独自の技術力(コアな技術)

ハッシュ(ドビーフ)
例えば、配列にint abc[3]={2,3,1};
とあったら
int hashfunc()
{
for(int i=0;i<3;i++)
{
     sum=sum+abc[i];
}
return sum%3;
}とすると、メモリにオーダー1回で高速に格納できる。
(あくまで例のソース)
(オーダーとは計算量)

2分探索(バイナリサーチ)(バイのふたなり)、はソート済みが前提、そして数当てゲームのアルゴリズムに似ている
例えば、0から99までの範囲を2分探索するとしたら
50を入力すると
もっと高いです!!
では次に75を入力すると、
もっと低いです!!
では次に(50+75)/2=125/2=62を入力します
すると...
当たりです!!
という計算方法によく似ています。

線形探索(リニアサーチ)、はメモリの配列の先頭から最後まで検索するアルゴリズム
こちらも0から99までの範囲を線形探索するとしたら
62回目でやっと探索できます。



AND演算の応用
1010 1101
1111 0000
------------
1010 0000
つまり、0b10101101 & 0b11110000は、この場合、上位4bitを取り出す。

OR演算の応用
1010 1101
1111 0000
------------
1111 1101
つまり、0b10101101 | 0b11110000は、この場合、上位4bitを全て1にする
下位4bitは0000なのでそのままにする

EXOR(XOR)の応用
1010 1101
1111 0000
------------
0101 1101
つまり、0b10101101 ^ 0b11110000は、この場合、上位4bitを反転させる
下位4bitは0000なのでそのまま


射影(射精)だからお下劣(列)列を取り出す
+--------+
|職員番号|
|----------
|0010|
|0001|
|0002|

選択(せんずりはおぎょうぎが悪い)、行を取り出す

+-----++-------++-----+
|001   |織田敏郎| 11000
+-----++-------++-----+

イジショタク、(産業財産権4つある)意匠法、実用新案法、商標法、特許法
※著作権は産業財産権ではないのに注意

アトム(完全性)、実行されるか実行されないかどちらか一方

ソート、基本交換法(バブルソート)隣り合った要素同士を交換するソート
、基本選択砲(選択ソート)、基本挿入法(挿入ソート)、クイックソート(高速ソート)

線形合同法ー乱数の生成アルゴリズム、やや古い
メルセンヌツイスター乱数の生成アルゴリズム、比較的新しい、綺麗な乱数が出る

ド・モルガン(ド・オルガン)の法則
ーーーーー
 A  AND  B、つまりcで書くと、!(A & B)
ー  ー
A OR  Bは、つまり、!A | !B

又は、
ーーーー
A OR B、つまりcで書くと、!(A | B)
ー  ー
A AND B 、つまり、!A & !B

第1正規形:表のセルに複数の値が入っている「繰り返し」の部分をなくし、1つのマスには1つの値だけを入れる状態にします。

第2正規形:主キー(行を特定する番号など)の一部だけで決まる列を別の表に分けて、部分的な依存をなくします。

第3正規形:主キー以外の列によって決まる別の列(推移的な依存)を別の表に分けて、無駄な重複をなくします。第一正規化は繰り返しを無くす

logic-circuit.JPG

それぞれの真理値表をまとめます
XOR
0 0 -> 0
0 1 -> 1
1 0  ->1
1 1  ->0

AND
0 0 -> 0
0 1 -> 0
1 0 ->0
1 1 ->1

OR
0 0 -> 0
0 1 -> 1
1 0 ->1
1 1 ->1

NAND
0 0 -> 1
0 1 -> 1
1 0 ->1
1 1 ->0

NOR
0 0 -> 1
0 1 -> 0
1 0 ->0
1 1 ->0

NOT
0->1
1->0

キャッシュメモリのヒット率
50nsの主記憶のアクセス速度とキャッシュメモリのアクセス速度が9ns
ヒット率が0.7だとすると、合計の速度は50*(1-0.7)+9*0.7=35+6.3=39.3

並列回路と直列回路の稼働率
Aの稼働率は0.9、Bの稼働率は0.7
このとき、Aを2つ並列に繋ぎ、そのままBと直列に繋いだ場合の
稼働率は
(1-(1-0.9)*(1-0.9))*0.7
=(1-0.01)*0.7
=0.99*0.7
=0.693

メールを受信する場合、受信者が公開鍵で復号化する
(メ受公)
デジタル署名が欲しい場合、送信者が秘密鍵で暗号化する
(デ送秘)

スタックとは配列とスタックポインタからなるデータ構造、
後から入れたものが先に取り出される
PUSH A PUSH B POP PUSH C
|A|
|
|B|
|A|
|
|A|
|
|C|
|A|

これを応用すると、逆ポーランド記法が解ける

逆ポーランド記法について解説。(日本語と少し似ている)

例えば、AB+C*だと、AとBを足してCをかける
だとか、具体的には、左側から処理しますが、
数値が来たらスタックにプッシュする、
演算子が来たら2つ取り出して計算したらまたプッシュ
最後に残った数値が答えです。

では具体的にどうやるんでしょうか?
35+7*
|3|
|
|5|
|3|

+なので、5+3をプッシュするので

|8|
|
|7|
|8|

*なので7*8をプッシュすると、56です。
これが答えです。

CPUの割り込みの種類
外部割込み(タイマー割込みや入出力割込みなど)
内部割込みの主な種類プログラム割込み
0による除算(ゼロ除算)や、オーバーフロー・アンダーフローなどの演算エラー不正な命令や、アクセスしてはいけないメモリ領域へのアクセス仮想メモリのページフォルト発生時SVC割込み(スーパーバイザコール):実行中のプログラムがOSの機能(システムコール)を呼び出すとき入出力処理などの要求を行うために発生させる




2分探索木
左が小さくて、右が大きいのが特徴。
binsearchtree.png
2<3<4<5<6<7
となる仕組み。つまり右にいけばいくほど大きくなり、
左にいけばいくほど小さくなる


システムの機能に障害が発生した時に
縮退運転をして継続するのがフェースソフト(ソフトに継続)
常に安全に制御するのがフェールセーフ(セーフ安全)

ホットサイトとコールドサイト
・災害地より遠くの場所に設置する施設

ホットサイト
本番と同じ処理を行い、災害や障害が起きたら、即座に切り替えられるシステムのこと、コストが高く付く代わりにすぐに災害や障害が起きたら切り替えられる為復旧に時間が短く済む点が良い部分

コールドサイト
最低限の装備しか用意していない施設。コストがかなり安く済むが、
災害や障害が起きたら、即座に切り替えられないので復旧に時間がかかる

ホットスタンバイ
コールドスタンバイ
→ホットサイトとコールドサイトのミニチュア版(サーバーのみ)

ブリッジ、ハブはデータリンク層
リピータは物理層

ユーザビリティ
ストレスを感じずに目標とする要求が達成できるかどうかのこと

著作権法で保護されない3つのもの
プログラム言語、規約、解法(アルゴリズム)

webビーコン
webサイト上にものすごく小さい画像(1x1px)を表示して
ユーザーのページ推移を観察する

リスク移転
保険をかけたり、リスクのある業務を委託することでリスクを他者に転嫁する

ウォーターフォールモデル
前から先へと順番に開発して川から滝のように流れるように
開発するモデル(その代わり手戻りすると、多くの手間と費用がかかってしまう)

プロトタイピングモデル
試作品を作り、利用者の要求をフィードバックする

稼働率=可用性
MTTR(平均修理時間)=保守性
MTBF(平均故障感覚)=信頼性
MTTR+MTBF=全運転時間

ストアドプロシージャ
クライアントとサーバーの通信負荷を軽減

ニッチ戦略
他者が参入しにくい特定の市場に対して専門化し、高利益率を図る

チャレンジャー戦略
市場での地位向上とトップシェア奪取を目標とした差別化戦略

リーダー戦略
総市場規模を拡大することで、シェアを維持しながら、新規需要の獲得

フォロワ戦略
リーダーの行動を観察し、迅速に模倣することで、製品開発などのコスト削減を図る

トップダウンテスト
↓スタブ

ボトムアップテスト
↑ドライバ

平均故障間隔MTBF
80時間後に故障、修理して、120時間後に故障、修理して、40時間に故障
(80+120+40)/3=80h

平均修理時間MTTR
故障してから修理に2時間、故障してから修理に6時間、故障してから修理に4時間
(2+6+4)/3=4h

NAT
グローバルIPアドレスとプライベートIPアドレスを相互に変換

DNS
IPアドレスとドメイン名を相互に変換

RPA
ソフトウェアロボット、OSの画面を把握して自動的に操作させるAIボット

LRU
もっとも長い間参照されていないページを追い出し対象とする

LFU
もっと参照回数が少ないページを追い出す

TLO法
大学での研究成果を特許化し、または企業への技術移転を支援し、産学の仲介役を果たす

リスク回避
リスクの要因そのものを排除してしまう戦略。
例えば
地震→津波→あらかじめ倉庫は高台に移動させたら
大丈夫。

リスク低減
リスクによる被害発生の防止や被害の程度を低減

リスク受容
リスクをそのまま受け入れる

CRM→(CM)で「顧客」を管理(kanRi)と覚えるといいかも。(本来の意味のCMとは全く異なるが)

生成多項式→CRC

非機能要件→開発、品質、技術、運用、移行、付帯「かひぎういふ」と覚える

ゼロデイ攻撃
→OSやセキュリティソフトが脆弱性を発見してアップデータを送る前に
ネットワーク上のPCを攻撃すること

DOS攻撃→個人がサーバーをかける行為
DDOS攻撃→複数のコンピュータがサーバーに負荷をかける行為

窓割れ理論→小さな犯罪が大きな犯罪を引き起こすという理論。

耐タンパ性→汚れや壊れにくい性質、また容易に解析されず、そして、内部のICチップを取り除く事が難しくする性質。

IrDA→赤外線通信

EDI→ネット上の企業同士の取引に使われる

ソーシャルエンジニアリング
→ゴミ箱を漁る、担当者のふりをして電話をかけてパスワードを知る、
画面に貼ってある付箋を見る
などの人間個人がアナログな方法でハッキングする事、またその行為

インベントリー収集
→会社に必要の無いソフトウェアがインストールされていないかを
調べること。

ステガノグラフィ
画像の中に秘密にしたいデータを仕込む技術
しかし、解像度を変えたり拡大縮小するとデータは失われる
電子透かし技術とも言われる


UPS
無停電電源装置、落雷や停電の際に電源をしばらくの間保つための電源安定装置。

シャドーIT
BYOD(BringYourOwnDevice)は会社に認可を得て使う個人の持ち物だが、
シャドーITは会社に必要の無い物を持ち込むこと

エンベローブ暗号化
暗号化したものでさらに暗号化すること

暗号のきかい化→一定の時間内に暗号やハッシュ関数などの計算方法を元に戻す計算方法が見つかった事。これが成り立つと暗号やハッシュ関数としては
致命的。

マーケットバスケット分析
→一緒に購入される商品の分析。バスケットとは、買い物かごの事を指す。

スラッシング
→仮想記憶方式でページの入れ替えが頻発し、システムの処理速度が著しく低下する現象

ペネテレーションテスト
→公開Webサーバーや組織のネットワークの脆弱性を探索し、実際に
サーバーに侵入できるか試してみる事

クラウドソーシング
→WEB上で個人へと仕事を依頼できるサービスの事。
(大手だとココナラなど)

RAID0→ストライピング
RAID1→ミラーリング
(RAIDは用語だけでも覚えると良いかもしれません)


語呂合わせ(ChatGPTに作ってもらいました)
1. CPU

「CPUはシーピーユー、全部処理するユニット!」

🧠 Central Processing Unit
→ コンピュータの中心的な処理装置。

2. GPU

「GPU、グッとパワーアップして並列処理!」

→ 大量の計算を並列処理するのが得意。

3. RAM

「RAMはランラン♪ 電源切ったら忘れちゃう」

→ 主記憶。基本的に電源を切ると内容が消える。

4. ROM

「ROMはロムって読んでるだけ」

→ 基本的に読み出し用の記憶。

5. RAID

「RAID戦隊、ディスクをいっぱい並べて守る!」

→ 複数ディスクを組み合わせ、性能向上や耐障害性向上を図る。

6. スタック

「スタック、最後に乗せた皿を最初に取る!」

🍽️
上から入れて、上から取る。

→ LIFO

7. キュー

「キューッと並んで、先頭からどうぞ!」

🚶🚶🚶

→ FIFO

8. FIFO

「ファースト・インした人が、ファースト・アウト!」

→ 先入れ先出し。

9. LIFO

「ラスト・インした人が、ファースト・アウト!」

→ 後入れ先出し。

🌐 ネットワーク編
10. DNS

「DNSさん、ドメイン名を聞いたらIPを出す!」

店員:

「www.example.comですね?
IPはこちらです!」

→ ドメイン名 ↔ IPアドレスの対応付け。

11. DHCP

「DHCPさん、IPアドレスを配って歩く!」

🎁「はい、あなた192.168.1.10!」

→ IPアドレスなどを自動設定。

12. TCP

「TCP、ちゃんと届いたか確認する几帳面な奴」

📦

「届いた?」

「届いた!」

→ 信頼性重視。

13. UDP

「UDP、届けたら知らんぷり!」

📦💨

「届いた?」

「知らん!」

→ TCPより高速・簡易。信頼性確認を行わない。

14. HTTP

「HTTP、Webページを運ぶ!」

→ Web通信に使われるプロトコル。

15. HTTPS

「HTTPS、HTTPにS(Security)を付けて守る!」

→ TLSなどで保護されたHTTP通信。

16. NAT

「NAT、内と外のIPをナット交換!」

🔩

→ IPアドレスを変換する。

17. VPN

「VPN、見えない専用トンネルを掘る!」

🚇

→ 公衆ネットワーク上に仮想的な専用通信路を構築。

🔐 セキュリティ編
18. IDS

「IDS、侵入を見つけて『いたぞー!』」

👀

→ Intrusion Detection System

=侵入を検知。

19. IPS

「IPS、『侵入させん!』と止める!」

🛑

→ Prevention

=侵入を防御。

これだけはセット暗記

IDS=見つける
IPS=止める

20. ファイアウォール

「火の壁で怪しい通信を焼き払う!」

🔥🧱

→ 通信を監視して許可・拒否。

21. フィッシング

「フィッシング詐欺師、魚じゃなくてパスワードを釣る!」

🎣

→ 偽サイトなどで情報をだまし取る。

22. マルウェア

「マルいウェアがコンピュータに侵入!」

→ 悪意のあるソフトウェアの総称。

23. ランサムウェア

「ランサムウェア『データ返してほしけりゃ金を払え!』」

→ データなどを利用できなくして、身代金を要求するマルウェア。

24. SQLインジェクション

「SQLを注射器でデータベースにブスッ!」

💉 → DB

→ SQL文を悪用してDBを不正操作。

25. XSS

「XSS、Webページに悪いスクリプトを仕込む!」

→ クロスサイトスクリプティング。

26. DoS

「DoS攻撃、サービスをドッサリ邪魔する!」

→ サービスを利用困難にする攻撃。

27. DDoS

「DDoS、ドッサリ×ドッサリ!」

👥👥👥 → 💻

→ 複数のコンピュータからDoS攻撃。

🔑 暗号編
28. 共通鍵暗号

「共通の鍵を二人で共用!」

🔑 ↔ 🔑

→ 暗号化と復号に同じ鍵。

29. 公開鍵暗号

「公開鍵はみんなに公開。でも秘密鍵は本人だけ!」

📢🔑  🔒

→ 公開鍵と秘密鍵という異なる鍵を使う。

30. ハッシュ

「ハッシュドポテトみたいにデータをグチャッと潰す!」

🥔

→ データからハッシュ値を生成。

31. デジタル署名

「デジタル文書に電子的なハンコ!」

📄🔏

→ 改ざん検知や署名者確認などに利用。

32. PKI

「PKI、公開鍵をちゃんと信用できるようにする仕組み!」

→ 公開鍵基盤。

💾 データベース編
33. 主キー

「主キー=主役キー。1人1人を見分ける!」

👤① 👤② 👤③

→ レコードを一意に識別。

34. 外部キー

「外部キー、外のテーブルへつなぐ鍵!」

🔑 ───→ 📋

→ 別テーブルとの関連付けに使用。

35. 正規化

「データの重複を整理整頓!」

🧹📚

→ 重複や更新時の矛盾を減らす。

36. JOIN

「JOIN! テーブルとテーブルがジョイン(合体)!」

📋 + 📋 → 📋

→ 複数テーブルを結合。

37. COMMIT

「コミット!この変更、確定!」


→ トランザクションを確定。

38. ROLLBACK

「ロールバック!やっぱ今のなし!」

↩️

→ 処理を取り消す。

🛠️ 信頼性編
39. MTBF

「MTBF=また壊れるまで」

💻

「また壊れるまで、どれくらい?」

→ 故障と故障の間の平均時間。

長いほど良い。

40. MTTR

「MTTR=また直るまで」

💻💥 → 🔧 → 💻

→ 故障してから修理・復旧するまでの平均時間。

短いほど良い。

超重要セット

MTBF=壊れる間隔
MTTR=直す時間

📊 プロジェクト編
41. PERT

「PERT、工程をネットワークでペタペタつなぐ!」

●──●──●
\──●──/

→ 作業の順序関係をネットワークで表して分析。

42. クリティカルパス

「ここが遅れたら全員遅刻!」

🏃──🏃──🏃

→ プロジェクト全体の期間を決める重要な経路。

43. WBS

「WBS、仕事をバラバラに分解!」

仕事
大仕事
小仕事
もっと小仕事

→ 作業を階層的に分解。

44. ガントチャート

「ガントさん、横棒で予定を管理!」

作業A █████
作業B ███████

→ 作業期間・進捗を表す。

🏢 経営・管理編
45. SLA

「SLA=サービスの約束!」

🤝

→ サービス提供者と利用者が合意したサービス水準。

46. SLO

「SLO=サービスの目標!」

🎯

→ サービスについて設定する目標水準。

SLA / SLO

SLA=約束
SLO=目標

これを混同しない。

47. RTO

「RTO=リカバリー、タイムの目標!」

⏱️

→ 復旧までの時間目標。

48. RPO

「RPO=リカバリー、ポイント!」

📅

→ どの時点までデータを戻すか。

RTO / RPO

T=Time → 時間
P=Point → 時点

これはかなり強力。

49. KPI

「KPI、目標への道を測るメーター!」

🎯 ← 📏

→ 重要業績評価指標。

50. ROI

「ROI、投資したら、おいくら戻った?」

💰 → 📈 → 💰

→ 投資に対してどれだけ利益を得たかを示す指標。

51. キャッシュメモリ

「CPUのすぐ横にある、超近距離コンビニ」

CPU「RAMまで行くの遠い……」
キャッシュ「ここに置いときました!」

👉 CPUがよく使うデータを高速に保存。

52. 仮想記憶

「RAMが足りない? HDD/SSDをRAMのふりさせろ!」

👉 補助記憶装置の一部をメモリのように使う。

53. ページング

「メモリをページに切って、必要なページだけ持ってくる」

👉 仮想記憶で、ページ単位でメモリと補助記憶を入れ替える。

54. スラッシング

「ページ交換ばっかりして、仕事してねぇ!」

メモリ不足
ページ入れ替え大量発生
CPU「俺、何の仕事してるんだ?」

👉 ページングが過剰に発生して処理性能が低下。

55. プロセス

「実行中のプログラム、それがプロセス」

プログラム=設計図
プロセス=実際に動いているやつ。

56. スレッド

「プロセスの中で働く作業員」

プロセス=会社
スレッド=社員

👉 1プロセス内で複数スレッドを動かせる。

57. カーネル

「OSの心臓部」

👉 CPU・メモリ・デバイスなどを管理するOSの中核。

58. デバイスドライバ

「Windowsとプリンタの通訳」

Windows「印刷して!」
プリンタ「何言ってるかわからん」
ドライバ「私が通訳します」

👉 OSとハードウェアを仲介。

59. 割込み

「CPUさん!ちょっといいですか!」

CPU「今仕事中!」
割込み「緊急案件です!」
CPU「じゃあそっち先にやる!」

👉 CPUの処理を一時中断して別の処理を行う。

60. DMA

「CPUを通さず、メモリとI/O装置が直接データ交換」

👉 Direct Memory Access。

覚え方:

「DMA=CPUをダマして直接運ぶ」

💾 記憶・ファイル編
61. フラグメンテーション

「データがバラバラになって部屋が汚い!」

👉 記憶領域が断片化する。

62. ガベージコレクション

「ゴミ収集車、メモリのゴミを回収!」

👉 不要になったメモリ領域を自動的に解放。

63. スプーリング

「プリンタに行列を作らせる」

印刷データ
一旦ディスクなどに貯める
プリンタへ順番に送る。

👉 入出力速度の違いを吸収。

64. ファイルシステム

「コンピュータのファイル整理係」

👉 ファイルやディレクトリを管理する仕組み。

65. FAT

「ファイルの住所録」

👉 File Allocation Table。

ファイルがディスクのどこにあるか管理。

66. NTFS

「Windowsの本格派ファイルシステム」

👉 Windowsで使われる代表的なファイルシステム。

67. シーケンシャルアクセス

「最初から順番に探す」

カセットテープ方式。

👉 順次アクセス。

68. ダイレクトアクセス

「その住所へ直接GO!」

👉 必要な場所へ直接アクセス。

69. フルバックアップ

「全部コピー!」

👉 全データをバックアップ。

70. 差分バックアップ

「最後のフルバックアップから変わった分」

覚え方:

「差分=フルとの差」

71. 増分バックアップ

「前回バックアップから増えた分」

覚え方:

「増分=前回から増えた分」

ここは超重要。

差分 → フルから
増分 → 前回から

🧮 数値・計算編
72. オーバーフロー

「コップから水があふれた!」

👉 表現できる最大値を超える。

73. アンダーフロー

「小さすぎて表現できない!」

👉 浮動小数点などで、値が小さすぎて扱えなくなる。

74. 固定小数点

「小数点の位置、固定!」

123.45
小数点の位置が決まっている。

75. 浮動小数点

「小数点がフワフワ動く!」

👉 数値を仮数部と指数部で表す。

76. 丸め誤差

「四捨五入したらちょっとズレた」

👉 数値を丸めることで生じる誤差。

77. 情報落ち

「小さい数字が消えた!」

大きい値と小さい値を計算すると、小さい値の影響が失われる。

78. 桁落ち

「似た数字を引いたら、有効数字が消えた!」

👉 近い値同士の減算で、有効桁数が減少。

79. 絶対誤差

「本当の値との差、そのもの」

👉
|真値 − 近似値|

80. 相対誤差

「そのズレ、本当の値の何%?」

👉 絶対誤差を真値などで割ったもの。

🔢 アルゴリズム編
81. 線形探索

「一人ずつ聞いていく」

「田中さん?」
「違います」
「鈴木さん?」
「違います」

👉 順番に探す。

82. 二分探索

「真ん中を見て、半分捨てる!」

1000個
500個捨てる
250個
125個……

👉 整列済みデータが必要。

83. クイックソート

「基準値よりデカい?小さい?左右に分かれろ!」

👉 基準となる値(ピボット)で分割していく。

84. マージソート

「バラして、並べて、合体!」

👉 分割 → ソート → マージ。

85. 挿入ソート

「トランプを手に入れるたび、正しい場所に差し込む」

👉 挿入しながら整列。

86. 選択ソート

「一番小さい奴、選手交代!」

👉 最小値などを選択して並べる。

87. ヒープ

「親分が子分より強い!」

最大ヒープなら

親 ≥ 子

👉 ヒープソートにも利用。

88. ハッシュテーブル

「住所計算して一発で飛ぶ!」

👉 ハッシュ値から格納位置を求める。

89. ハッシュ衝突

「同じ住所に二人来た!」

👉 異なるデータが同じハッシュ値になる。

90. 再帰

「自分の中から自分を呼ぶ」

関数A
A
A
A……

👉 終了条件がないと大変なことになる。

🌳 データ構造編
91. 木構造

「データが木みたいに枝分かれ」

👉 Tree。

92. 二分木

「子供は最大2人!」

👉 各ノードの子が最大2個。

93. 二分探索木

「左は小さい、右は大きい」

覚え方:

左=小
右=大

94. DFS

「深く!深く!深く!」

Depth First Search。

👉 深さ優先探索。

95. BFS

「まず近所を全部見てから遠くへ」

Breadth First Search。

👉 幅優先探索。

96. グラフ

「駅と駅を線でつないだ世界」

👉 頂点と辺で表現。

97. FIFO

「先に入った奴が先に出る」

行列。

98. LIFO

「最後に入った奴が先に出る」

積み重ねた皿。

99. スタック

「皿タワー」

上から取る。

👉 LIFO。

100. キュー

「ラーメン屋の行列」

先に並んだ人から食べる。

👉 FIFO。

🌐 ネットワーク編
101. IPアドレス

「ネット上の住所」

102. MACアドレス

「ネットワーク機器の固有の住所」

覚え方:

IP=論理的な住所
MAC=機器側の住所

103. サブネットマスク

「IPアドレスの、どこまでがネットワーク?」

👉 ネットワーク部とホスト部を区別。

104. デフォルトゲートウェイ

「外の世界へ出るための門番」

インターネット

👉 別ネットワークへ通信するときの出口。

105. ルータ

「ネットワーク間の道案内」

👉 異なるネットワークを接続。

106. スイッチ

「LAN内の交通整理」

👉 MACアドレスなどを利用して適切なポートへ転送。

107. ARP

「IPさん、このMAC誰ですか?」

覚え方:

ARP=IPからMACを聞く

108. ICMP

「ネットワークからのお便り」

👉 pingなどで利用。

109. ポート番号

「建物の中の部屋番号」

IP=建物
ポート=部屋

110. NAT

「家の中の住所を外向け住所に変換!」

👉 プライベートIPとグローバルIPなどを変換。

📡 通信プロトコル編
111. TCP

「ちゃんと届いた?順番大丈夫?確認します!」

👉 信頼性重視。

112. UDP

「とりあえず送る!確認はしない!」

👉 TCPより軽量。
※正確には到達・順序などを保証しない。

113. HTTP

「Webページを運ぶ」

114. HTTPS

「HTTPをTLSで安全にしたもの」

覚え方:

HTTPS=HTTP+安全装備

115. FTP

「ファイルを運ぶトラック」

👉 File Transfer Protocol。

116. SSH

「遠隔コンピュータへ安全に入る」

👉 暗号化されたリモートログインなど。

117. SMTP

「メールを送る係」

👉 メール送信。

118. POP3

「メールを取りに行って持って帰る」

👉 メール受信。

119. IMAP

「メールをサーバ上で管理する」

👉 複数端末でメールを扱いやすい。

120. SNMP

「ネットワーク機器の健康診断」

👉 ネットワーク機器の監視・管理。

🔐 セキュリティ編
121. 認証

「あなた誰?」

👉 本人確認。

122. 認可

「あなた、何していい?」

👉 権限を与えること。

認証=誰?
認可=何していい?

これは超重要。

123. SSO

「一回ログインしたら、他のサービスも入れる」

Single Sign-On。

124. 多要素認証

「鍵を2個以上要求する」

パスワードだけではなく、別の要素も使う。

125. CAPTCHA

「ロボットじゃないですよね?」

👉 人間とボットを区別する仕組み。

126. ブルートフォース攻撃

「全部の鍵を片っ端から試す!」

👉 総当たり攻撃。

127. 辞書攻撃

「password?123456?名前?……」

👉 よく使われるパスワードなどを辞書として試す。

128. ソーシャルエンジニアリング

「コンピュータじゃなく、人間をだます」

👉 人の心理・行動の隙を利用。

129. バッファオーバーフロー

「コップに水を入れすぎた!」

👉 バッファの容量を超えるデータを書き込む。

130. ゼロデイ攻撃

「対策する暇、ゼロ日!」

👉 脆弱性への対策が十分に存在しない段階で行われる攻撃。

131. バックドア

「正面玄関じゃなく裏口から侵入」

👉 不正な侵入経路。

132. ボット

「命令されて自動で動くコンピュータ」

133. ボットネット

「ボット軍団」

👉 感染・乗っ取られた多数の機器などで構成。

134. WAF

「Webアプリ専用の門番」

👉 Web Application Firewall。

135. SIEM

「セキュリティログを集めて分析する司令室」

👉 複数のログを収集・分析して異常を検知。

🗄️ データベース編
136. トランザクション

「一連の処理をひとまとまりにする」

銀行振込など。

137. ACID

これは4人組で覚える。

A=全部やるか、全部やらない
C=ルールを守る
I=他の処理に邪魔されない
D=確定したら消えない

👉 データベースのトランザクション特性。

138. 排他制御

「俺が使ってるから、ちょっと待て!」

👉 複数処理が同じデータを同時更新して矛盾するのを防ぐ。

139. コミット

「この変更、正式採用!」

👉 トランザクションを確定。

140. ロールバック

「やっぱ今の変更なし!」

👉 変更を取り消して元に戻す。

141. インデックス

「本を全部読むな。索引を見ろ!」

👉 データ検索を高速化するための索引。

142. ビュー

「本体データじゃなく、見せ方だけ作る」

👉 仮想的な表。

143. SELECT

「データを見せろ!」

👉 データを検索・取得。

144. INSERT

「新しいデータを入れろ!」

145. UPDATE

「既存データを書き換えろ!」

146. DELETE

「消せ!」

147. JOIN

「テーブル同士、合体!」

148. GROUP BY

「同じ奴らをグループにまとめろ!」

👉 SQLでグループ化。

149. 主キー

「このデータは誰?を一意に決めるキー」

👉 重複しない識別子。

150. 外部キー

「別テーブルの主キーにつなぐ橋」

👉 テーブル間の関連付けに利用。

151. RAID

「ディスク戦隊RAIDマン!」

複数のディスクを組み合わせて、性能向上や耐障害性向上を狙う。

152. RAID 0

「ゼロ=守りゼロ!」

データを複数ディスクに分散。

👉 高速化できるが、冗長性なし。

153. RAID 1

「1=同じものを1個コピー!」

👉 ミラーリング。
同じデータを複数ディスクに保存。

覚え方:

RAID 1=鏡

154. RAID 5

「5人組でパリティを分担!」

👉 データ+パリティを複数ディスクに分散。

「RAID5=パリティ」

と覚えておく。

155. ミラーリング

「鏡だから同じ!」

👉 同じデータを複数箇所に保存。

RAID 1が代表。

156. ストライピング

「データを細切れにして横並び!」

👉 複数ディスクにデータを分散。

RAID 0が代表。

157. パリティ

「壊れたデータを復元するための計算材料」

👉 RAIDなどで障害復旧に利用。

158. MTBF

「また壊れるまで」

Mean Time Between Failures。

👉 故障と故障の平均間隔。

159. MTTR

「また直るまで」

Mean Time To Repair。

👉 修理に要する平均時間。

160. 可用性

「いつでも使える度」

覚え方:

可用性=使える?

161. フォールトトレラント

「故障しても平然と動く!」

👉 障害が発生しても機能を継続できる。

162. フェールセーフ

「壊れたら安全側へ!」

信号機などをイメージ。

👉 故障時に安全を確保する方向へ。

163. フェールソフト

「壊れても性能を落として動き続ける!」

👉 一部機能を停止して、システム全体は継続。

164. フールプルーフ

「人間が間違えても事故らせない!」

👉 誤操作を防ぐ設計。

🔥 ここは4兄弟で暗記

フェールセーフ
→ 壊れたら安全

フェールソフト
→ 壊れたら縮小して継続

フールプルーフ
→ 人間が間違えても大丈夫

🔐 暗号・認証編
165. 共通鍵暗号方式

「二人とも同じ鍵!」

暗号化:🔑
復号:🔑

👉 同じ鍵を使用。

166. 公開鍵暗号方式

「公開する鍵と、秘密の鍵の2本立て!」

🔓 公開鍵
🔐 秘密鍵

👉 公開鍵と秘密鍵のペアを利用。

167. RSA

「公開鍵暗号の代表選手!」

👉 公開鍵暗号方式の代表例。

168. AES

「共通鍵暗号の代表選手!」

👉 高速な共通鍵暗号方式。

169. ハッシュ関数

「データをグチャッと潰して、元に戻せない指紋を作る!」

👉 任意長データから固定長の値を生成。

170. SHA-256

「SHAで256ビットのハッシュ!」

👉 ハッシュ関数の代表例。

171. 電子署名

「俺がこの文書を書いた!改ざんもされてない!」

👉 送信者の認証・改ざん検出などに利用。

重要:

署名=秘密鍵で署名、公開鍵で検証

172. デジタル証明書

「この公開鍵、本当に○○さんのですよ」

👉 公開鍵と所有者などの情報を結び付ける証明。

173. CA

「公開鍵の身元保証人」

Certificate Authority。

👉 認証局。

174. PKI

「公開鍵社会の身分証システム」

👉 公開鍵暗号基盤。

CAや電子証明書などを使って公開鍵を信頼できるようにする仕組み。

175. TLS

「インターネット通信に安全装備!」

👉 通信を暗号化・認証などによって保護。

HTTPSで利用される。

176. 生体認証

「身体そのものが鍵!」

指紋・顔など。

177. ICカード認証

「持っているカードが鍵!」

👉 ICカードなどを利用して認証。

178. 多要素認証

「鍵を2種類以上要求!」

例えば、

知識=パスワード
所持=スマホ・カード
生体=指紋など

🛡️ セキュリティ攻撃編
179. マルウェア

「悪いソフトの総称」

👉 ウイルス、ランサムウェアなどを含む。

180. ウイルス

「他のプログラムなどに寄生して増殖する悪いやつ」

👉 マルウェアの一種。

181. ランサムウェア

「データを人質にする!」

👉 データを使えなくするなどして、身代金を要求するマルウェア。

182. フィッシング

「魚じゃない、情報を釣る!」

👉 偽サイトなどで認証情報をだまし取る。

183. DoS

「1人でドッサリ攻撃!」

👉 大量の要求などでサービスを利用困難にする。

184. DDoS

「大勢でドッサリ攻撃!」

👉 複数のコンピュータなどからDoS攻撃。

185. SQLインジェクション

「SQLを注射してDBを攻撃!」

👉 Webアプリケーションの入力などを悪用してSQL文を不正に実行させる。

186. XSS

「Webページに悪いスクリプトを仕込む!」

👉 Cross-Site Scripting。

187. CSRF

「本人が知らないうちに操作させる!」

👉 ログイン済み利用者の権限を悪用して、意図しない処理を実行させる攻撃。

188. セッションハイジャック

「ログイン中の席を乗っ取る!」

👉 セッション情報を悪用して利用者になりすます。

189. IDS

「侵入を見つける!」

I=Intrusion
D=Detection
S=System

👉 侵入検知。

190. IPS

「侵入を止める!」

I=Intrusion
P=Prevention
S=System

👉 侵入防止。

覚え方:

IDS=「いたぞー!」
IPS=「入れるか!」

🏰 セキュリティ思想編
191. ファイアウォール

「ネットワークの門番」

👉 通信を監視・制御。

192. WAF

「Webアプリ専用の門番」

👉 Webアプリケーションへの攻撃を防御。

193. ゼロトラスト

「最初から誰も信用しない!」

👉 ネットワーク内部だから安全、とは考えず、アクセスごとに適切な検証を行う考え方。

194. 多層防御

「門を一個突破されても、次の門がある!」

👉 複数の防御策を組み合わせる。

195. バックアップ

「もしものためのコピー」

196. BCP

「災害が起きても事業を続ける!」

Business Continuity Plan。

👉 事業継続計画。

197. BCPとバックアップの違い

「バックアップ=データを守る」
「BCP=事業を続ける」

ここは選択肢で狙われる。

⏱️ RTO・RPO編
198. RTO

「いつまでに復旧する?」

Recovery Time Objective。

👉 復旧時間の目標。

199. RPO

「どの時点まで戻す?」

Recovery Point Objective。

👉 復旧時点の目標。

200. RTO/RPO

これだけ覚えればいい。

RTO=Time → 時間
RPO=Point → 時点

例えば、

RTO=2時間
→ 2時間以内に復旧したい

RPO=1時間
→ 1時間前の状態まで戻せればよい

📊 開発・プロジェクト編
201. ウォーターフォール

「上流から下流へドバーッ!」

要件
設計
実装
テスト

👉 基本的に工程を順番に進める。

202. アジャイル

「小さく作って、すぐ確認!」

👉 短いサイクルを繰り返して開発。

203. スクラム

「アジャイル開発のチーム戦!」

👉 スプリントなどの短い期間で開発を繰り返す代表的な手法。

204. スプリント

「短距離ダッシュ!」

👉 スクラムにおける一定期間の開発サイクル。

205. 要件定義

「何を作るの?」を決める

👉 システムに必要な機能・条件などを明確化。

206. 基本設計

「システム全体をどう作る?」

👉 外部から見た機能などを設計。

207. 詳細設計

「中身をどう実装する?」

👉 プログラム内部などを具体化。

208. 単体テスト

「部品1個をテスト!」

👉 個々のモジュールなどをテスト。

209. 結合テスト

「部品同士をくっつけてテスト!」

210. システムテスト

「システム全体をテスト!」

211. 受入れテスト

「お客さん、これでOKですか?」

👉 利用者・発注者側の要求を満たすか確認。

212. 回帰テスト

「直したら別のところ壊れてない?」

👉 修正・変更後に既存機能への影響を確認。

📋 プロジェクト管理編
213. WBS

「仕事をバラバラに分解!」

Work Breakdown Structure。

👉 作業を階層的に分解。

214. ガントチャート

「横棒でスケジュール!」

👉 作業期間を横棒で表示。

215. マイルストーン

「ここまで来たら重要地点!」

👉 プロジェクト上の重要な節目。

216. PERT

「作業をネットワークでつないで時間を見る!」

👉 作業の順序関係をネットワーク図で表す。

217. クリティカルパス

「ここが遅れたらプロジェクト全体が遅れる!」

👉 プロジェクト期間を決める最長経路。

覚え方:

クリティカル=超重要

218. アローダイアグラム

「矢印で作業の順番をつなぐ!」

👉 PERTなどで使用。

🧪 テスト技法編
219. ブラックボックステスト

「中身は見ない!」

入力
📦
出力

👉 内部構造を意識せず、入力と出力を確認。

220. ホワイトボックステスト

「中身を見る!」

👉 プログラム内部の論理・経路などを確認。

覚え方:

Black=箱が黒くて見えない
White=箱が透明

221. 同値分割

「代表選手だけテスト!」

例えば1〜100が正常なら、

1〜100
101以上
0以下

などに分けて代表値をテスト。

222. 限界値分析

「境界線を攻めろ!」

1〜100なら、

1、100、0、101

など境界付近をテスト。

223. デバッグ

「バグを探して退治!」

👉 プログラムの誤りを発見・修正。

224. リファクタリング

「動作は変えずに、コードを掃除!」

👉 外部から見た振る舞いを変えず、内部構造を改善。

225. モジュール

「プログラムを部品化!」

👉 独立性のあるまとまり。

226. 凝集度

「その部品、仲間同士まとまってる?」

👉 モジュール内部の要素同士の関連性。

227. 結合度

「部品同士、どれくらいベッタリ?」

👉 モジュール間の依存関係。

覚え方:

凝集度=中の仲良し度
結合度=外とのベッタリ度

📈 サービス管理編
228. SLA

「サービスの契約上の約束!」

Service Level Agreement。

👉 サービス提供者と利用者の間の合意。

229. SLO

「サービスの目標値!」

Service Level Objective。

👉 サービスレベルの目標。

230. SLAとSLO

SLA=約束
SLO=目標

これで区別。

231. インシデント管理

「障害が起きた!まず復旧!」

👉 ITサービスをできるだけ早く通常状態へ戻す。

232. 問題管理

「そもそも、なぜ障害が起きた?」

👉 インシデントの根本原因などを分析し、再発防止につなげる。

233. 構成管理

「IT資産の台帳を管理!」

👉 ハードウェア・ソフトウェアなどの構成情報を管理。

234. キャパシティ管理

「容量、足りる?」

👉 システムの処理能力・資源などを管理。

💼 経営・企業編
235. ERP

「会社の資源をまとめて管理!」

Enterprise Resource Planning。

👉 会計・人事・生産・販売などを統合的に管理。

236. CRM

「お客さんを大事にする!」

Customer Relationship Management。

👉 顧客との関係を管理。

237. SCM

「原材料からお客さんまでの流れを管理!」

Supply Chain Management。

238. BI

「会社のデータを分析して経営判断!」

Business Intelligence。

239. DX

「デジタルで会社の仕組みそのものを変革!」

👉 単なるIT化ではなく、デジタル技術を活用した変革。

240. KPI

「目標への途中経過メーター」

👉 重要業績評価指標。

241. KGI

「最終ゴール!」

Key Goal Indicator。

覚え方:

KGI=ゴール
KPI=途中のメーター

242. ROI

「投資したら、いくら返ってきた?」

Return On Investment。

👉 投資利益率。

243. SWOT分析

「会社の強み・弱み・外部環境を4方向から見る!」

S=強み
W=弱み
O=機会
T=脅威

244. 3C分析

「会社・客・ライバル!」

Company=自社
Customer=顧客
Competitor=競合

245. 4P

「商品を売る4兄弟!」

Product=製品
Price=価格
Place=流通
Promotion=販売促進

🎯 最後の5個は超重要
246. 機密性

「見せるな!」

👉 許可された人だけが情報を利用できる。

247. 完全性

「勝手に変えるな!」

👉 情報が正確で、改ざんされていない状態。

248. 可用性

「ちゃんと使わせろ!」

👉 必要なときに利用できる状態。

249. CIA

セキュリティの三銃士。

C=Confidentiality=機密性
I=Integrity=完全性
A=Availability=可用性

覚え方:

C「見せるな!」
I「変えるな!」
A「使わせろ!」

250. 情報セキュリティ

「見せない・変えさせない・使えるようにする」

つまり、

機密性・完全性・可用性

= CIA


似た物同士の用語50個

1〜10:ネットワーク・通信
① TCP vs UDP

TCP=几帳面

「届いた?順番合ってる?もう一回確認します!」

UDP=せっかち

「送った!あとは知らん!」

TCP:到達・順序などを保証する
UDP:それらを保証しない

🧠 TCP=丁寧、UDP=速い

② IPアドレス vs MACアドレス

IP=ネットワーク上の住所
MAC=ネットワークインターフェースの識別子

🧠
IP=引っ越すことがある住所
MAC=機器側の固有の識別子

③ ルータ vs スイッチ

ルータ=ネットワークとネットワークをつなぐ
スイッチ=LAN内の機器をつなぐ

🧠

ルータ「別の街へ行くぞ!」
スイッチ「同じ町内なら任せろ!」

④ DNS vs DHCP

DNS=名前 → IP

「www.example.comって誰?」
→ IPアドレスを教える。

DHCP=IPを配る

「あなたのIPはこれです」

🧠

DNS=名前を聞く
DHCP=住所を配る

⑤ HTTP vs HTTPS

HTTP=Web通信
HTTPS=TLSで保護されたHTTP

🧠

HTTP「丸腰です」
HTTPS「TLSアーマー装備!」

⑥ FTP vs HTTP

FTP=ファイル転送
HTTP=Webなどの通信

🧠

FTP=File Transfer

「F=ファイル」と覚える。

⑦ SMTP vs POP3

SMTP=送る
POP3=受け取る

🧠

SMTP「メールを発送!」
POP3「メールを取りに来た!」

⑧ POP3 vs IMAP

どちらもメール受信。

POP3=端末へ取り込むイメージ
IMAP=サーバ上のメールを管理するイメージ

🧠

POP=持ってくる
IMAP=サーバに置いておく

⑨ LAN vs WAN

LAN=狭い範囲
WAN=広い範囲

🧠

LAN=Local=近所
WAN=Wide=広域

⑩ VPN vs 専用線

VPN=公衆ネットワーク上に仮想的な安全な通信経路
専用線=通信事業者などから専用の回線を提供してもらう

🧠

VPN=道路は共有、通信を保護
専用線=道路そのものを専用化

11〜20:セキュリティ
⑪ 認証 vs 認可

認証=あなた誰?
認可=あなた何していい?

🧠

「誰?」→認証
「何していい?」→認可

⑫ 暗号化 vs ハッシュ

暗号化=復号できる
ハッシュ=基本的に元データへ戻すことを目的としない

🧠

暗号=鍵で開ける金庫
ハッシュ=データの指紋

⑬ 共通鍵暗号 vs 公開鍵暗号

共通鍵=同じ鍵
公開鍵=公開鍵+秘密鍵

🧠

共通鍵「俺とお前、同じ鍵な」
公開鍵「公開する鍵と、秘密の鍵を分けよう」

⑭ 公開鍵暗号による暗号化 vs 電子署名

ここは超重要。

暗号化
→ 秘密にする

電子署名
→ 誰が作ったか・改ざんされていないかを確認する

🧠

暗号=隠す
署名=証明する

⑮ IDS vs IPS

IDS=侵入を検知
IPS=侵入を防止

🧠

IDS「いたぞー!」
IPS「入れるか!」

⑯ ファイアウォール vs WAF

ファイアウォール=ネットワーク通信を制御
WAF=Webアプリへの攻撃を防御

🧠

Firewall=城門
WAF=Web専用城門

⑰ ウイルス vs マルウェア

マルウェア=悪意あるソフトウェアの総称
ウイルス=マルウェアの一種

🧠

マルウェア=悪者軍団
ウイルス=その中の一兵士

⑱ DoS vs DDoS

DoS=1つの発信元などからの攻撃
DDoS=多数の発信元からの分散型攻撃

🧠

D=Distributed=分散

⑲ フィッシング vs ソーシャルエンジニアリング

フィッシング=偽サイト・偽メールなどで情報をだまし取る
ソーシャルエンジニアリング=人間の心理・行動の隙を利用

🧠

フィッシング=釣る
ソーシャル=人間をだます

※フィッシングはソーシャルエンジニアリングの一例として扱われることもある。

⑳ ブルートフォース vs 辞書攻撃

ブルートフォース=総当たり
辞書攻撃=よく使われる候補を試す

🧠

ブルート「全部試せ!」
辞書「ありがちなやつだけ試そう」

21〜30:記憶・アルゴリズム
㉑ スタック vs キュー

スタック=LIFO
キュー=FIFO

🧠

スタック=皿タワー
キュー=行列

㉒ FIFO vs LIFO

FIFO=First In First Out
LIFO=Last In First Out

🧠

FIFO=先に入った奴が先に出る
LIFO=最後に入った奴が先に出る

㉓ 線形探索 vs 二分探索

線形探索=順番に探す
二分探索=真ん中を見て半分ずつ絞る

🧠

線形=1人ずつ面接
二分=半分捨てる

⚠️ 二分探索には基本的に整列済みであることが必要。

㉔ DFS vs BFS

DFS=深さ優先
BFS=幅優先

🧠

DFS=地下へズンズン
BFS=周囲をぐるっと

㉕ クイックソート vs マージソート

クイック=基準値で分割
マージ=分割してから統合

🧠

クイック「お前こっち!お前あっち!」
マージ「じゃあ最後に合体!」

㉖ オーバーフロー vs アンダーフロー

オーバー=大きすぎる
アンダー=小さすぎる

🧠

OVER=あふれる
UNDER=小さすぎ

㉗ 丸め誤差 vs 桁落ち

丸め誤差=丸めたことで生じる誤差
桁落ち=近い値の減算などで有効桁が減る

🧠

丸め=四捨五入でズレる
桁落ち=引き算で桁が消える

㉘ 固定小数点 vs 浮動小数点

固定=小数点の位置固定
浮動=小数点の位置が変化する

🧠

固定「ここから動きません」
浮動「フワフワ移動します」

㉙ 主キー vs 外部キー

主キー=自分を一意に識別
外部キー=他テーブルとの関連付け

🧠

主キー=自分の身分証
外部キー=友達の身分証を参照する橋

㉚ インデックス vs ビュー

インデックス=検索を速くする
ビュー=仮想的な表を見せる

🧠

インデックス=本の索引
ビュー=ショーウィンドウ

31〜40:データベース・信頼性
㉛ COMMIT vs ROLLBACK

COMMIT=確定
ROLLBACK=取り消し

🧠

COMMIT「採用!」
ROLLBACK「やっぱ戻す!」

㉜ 差分バックアップ vs 増分バックアップ

ここは超重要。

差分=最後のフルからの変更分
増分=前回のバックアップからの変更分

🧠

差分=フルとの差
増分=前回から増えた

㉝ フルバックアップ vs ミラーリング

フルバックアップ=バックアップとしてデータを保存
ミラーリング=複数の記憶装置などに同じデータを保持

🧠

バックアップ=保険
ミラー=双子

㉞ RAID 0 vs RAID 1

RAID 0=ストライピング
→ 高速化、冗長性なし

RAID 1=ミラーリング
→ 同じデータを複数ディスクに保持

🧠

0=守りゼロ
1=鏡

㉟ MTBF vs MTTR

MTBF=故障するまでの平均時間間隔
MTTR=修理に要する平均時間

🧠

BF=壊れるまで
TR=修理するまで

㊱ 可用性 vs 信頼性

可用性=必要なときに使えるか
信頼性=故障しにくく、安定して動くか

🧠

可用性=「今使える?」
信頼性=「壊れにくい?」

㊲ フェールセーフ vs フェールソフト

フェールセーフ=故障時に安全側へ
フェールソフト=機能を縮小して継続

🧠

SAFE=安全
SOFT=機能を柔らかく減らす

㊳ フールプルーフ vs フェールセーフ

フールプルーフ=人間のミスを防ぐ
フェールセーフ=故障時に安全を確保

🧠

FOOL=人間のうっかり
FAIL=機械の故障

㊴ フォールトトレラント vs フェールソフト

フォールトトレラント=故障しても機能を維持
フェールソフト=一部機能を落として継続

🧠

Tolerant=故障を「許容」
Soft=機能を「縮小」

㊵ SLA vs SLO

SLA=サービスレベルについての合意・契約
SLO=サービスレベルの目標

🧠

A=Agreement=約束
O=Objective=目標

41〜50:プロジェクト・経営
㊶ RTO vs RPO

RTO=どれくらいの時間で復旧する?
RPO=どの時点までデータを戻す?

🧠

T=Time=時間
P=Point=時点

㊷ WBS vs ガントチャート

WBS=作業を分解する
ガント=スケジュールを横棒で表示

🧠

WBS=仕事をバラす
ガント=予定を棒にする

㊸ PERT vs ガントチャート

PERT=作業の順序関係・所要時間などをネットワークで分析
ガント=作業期間を横棒で表示

🧠

PERT=つなぐ
ガント=棒

㊹ PERT vs クリティカルパス

PERT=工程全体をネットワークで表す・分析する手法
クリティカルパス=プロジェクト期間を決める最長経路

🧠

PERT=「地図を描く」
クリティカルパス=「絶対遅れちゃダメな道」

㊺ ウォーターフォール vs アジャイル

ウォーターフォール=工程を順番に進める
アジャイル=短いサイクルで繰り返す

🧠

Waterfall=滝のように上から下へ
Agile=小刻みに動く

㊻ 単体テスト vs 結合テスト

単体=1個の部品
結合=部品を組み合わせる

🧠

単体=一人面接
結合=チーム面接

㊼ ブラックボックス vs ホワイトボックス

ブラック=内部を意識しない
ホワイト=内部構造を見る

🧠

黒箱=中が見えない
白箱=透明な箱

㊽ KPI vs KGI

KPI=途中経過を測る指標
KGI=最終目標の達成度を測る指標

🧠

KPI=途中のメーター
KGI=ゴール

㊾ ERP vs CRM

ERP=企業の経営資源・業務を統合管理
CRM=顧客との関係を管理

🧠

ERP=会社全体
CRM=お客さん

㊿ 3C vs 4P

3C=Company / Customer / Competitor

→ 自社・顧客・競合

4P=Product / Price / Place / Promotion

→ 製品・価格・流通・販売促進

🧠

3C=「誰を見る?」
4P=「どう売る?」

🧠 50組を圧縮するとこうなる

試験直前なら、この表だけ眺める。

混同ペア 一撃暗記
TCP / UDP 確認する / とりあえず送る
IP / MAC ネットワーク上の住所 / 機器の識別子
ルータ / スイッチ ネットワーク間 / LAN内
DNS / DHCP 名前→IP / IPを配る
HTTP / HTTPS Web / TLSで保護
SMTP / POP3 送信 / 受信
POP3 / IMAP 取り込む / サーバ上で管理
認証 / 認可 誰? / 何していい?
暗号 / ハッシュ 戻せる / 戻す目的ではない
共通鍵 / 公開鍵 同じ鍵 / 2種類の鍵
暗号化 / 電子署名 隠す / 証明する
IDS / IPS 見つける / 防ぐ
DoS / DDoS 単一 / 分散
ブルート / 辞書 全部 / 候補を絞る
スタック / キュー LIFO / FIFO
DFS / BFS 深く / 幅広く
線形 / 二分 1個ずつ / 半分ずつ
主キー / 外部キー 自分 / 他テーブルとの関係
COMMIT / ROLLBACK 確定 / 戻す
差分 / 増分 フルから / 前回から
RAID0 / RAID1 分散 / 鏡
MTBF / MTTR 壊れるまで / 直す時間
可用性 / 信頼性 使える / 壊れにくい
セーフ / ソフト 安全 / 縮小継続
フールプルーフ / セーフ 人間ミス / 故障
SLA / SLO 約束 / 目標
RTO / RPO 復旧時間 / 復旧時点
WBS / ガント 分解 / 横棒
PERT / CP ネットワーク分析 / 最長経路
WF / アジャイル 順番 / 繰り返し
単体 / 結合 1個 / 組み合わせ
Black / White 中を見ない / 中を見る
KPI / KGI 途中 / ゴール
ERP / CRM 会社 / 顧客
3C / 4P 誰を見る / どう売る

251. CPU

「コンピュータの計算係」

👉 命令を解釈・実行する。

252. ALU

「計算と論理の職人」

Arithmetic Logic Unit。

👉 算術演算・論理演算を行う。

🧠 ALU=計算担当

253. 制御装置

「CPUの司令官」

👉 命令を解釈し、各装置を制御。

254. レジスタ

「CPUの机の上にある超高速メモ帳」

👉 CPU内部にある高速な記憶領域。

255. プログラムカウンタ

「次に実行する命令の住所を覚える係」

🧠
PC=Program Counter=次の命令

256. 命令レジスタ

「今実行している命令を持っている」

🧠

PC=次
命令レジスタ=今

257. クロック周波数

「CPUのテンポ」

3 GHzなら、1秒間に約30億回のクロック。

🧠 GHz=CPUのリズム

258. MIPS

「1秒間に何百万命令?」

Million Instructions Per Second。

👉 CPU性能の指標の一つ。

259. FLOPS

「1秒間に浮動小数点演算を何回?」

🧠

F=Floating
OPS=Operations

260. GPU

「大量の計算をみんなで一斉処理!」

👉 並列処理が得意。

🧠 CPU高速化編
261. パイプライン

「工場の流れ作業」

命令A:実行中
命令B:解読中
命令C:読み込み中

👉 複数命令を工程ごとに重ねて処理。

262. スーパースカラ

「1本の工場ラインじゃ足りない!複数ラインだ!」

👉 複数の命令を並列に実行できるCPU構造。

263. マルチコア

「CPUの中に作業員が複数人」

👉 複数のプロセッサコアを持つ。

264. マルチスレッド

「一人の作業員が複数の仕事を処理」

👉 複数スレッドを並行して扱う。

265. SIMD

「同じ命令を大量のデータへ一斉発射!」

Single Instruction, Multiple Data。

🧠

「1命令でデータ軍団を攻撃!」

266. MIMD

「複数の命令を複数データに!」

Multiple Instruction, Multiple Data。

267. RISC

「命令をシンプルに!」

👉 比較的単純な命令を高速に実行する考え方。

268. CISC

「命令をリッチに!」

👉 複雑な命令を備える考え方。

🧠

RISC=Simple
CISC=Complex

269. キャッシュヒット

「あった!キャッシュにあった!」

👉 必要なデータがキャッシュに存在。

270. キャッシュミス

「ない!RAMまで探しに行け!」

👉 キャッシュに必要なデータがない。

⚙️ OS・処理編
271. マルチタスク

「複数の仕事を切り替えながら処理」

👉 複数のタスクを並行して処理しているように見せる。

272. タイムスライス

「CPUの時間を細かく切って配る」

🧠

Aさん、少しどうぞ
Bさん、少しどうぞ
Cさん、少しどうぞ

273. コンテキストスイッチ

「CPUが仕事を交代する」

👉 実行中の処理の状態を保存し、別の処理へ切り替える。

274. デッドロック

「お互いが相手を待って永久停止!」

A「Bの資源を待つ」
B「Aの資源を待つ」

👉 どちらも進まない。

275. セマフォ

「入場許可証を管理する門番」

👉 共有資源へのアクセスを制御。

276. 排他制御

「今俺が使ってる!他の人は待て!」

👉 同時アクセスによるデータ矛盾などを防ぐ。

277. 仮想化

「1台のコンピュータを複数台っぽく見せる」

👉 物理資源を論理的に分割して利用。

278. ハイパーバイザ

「仮想マシンの管理人」

👉 仮想マシンを動作・管理するソフトウェア。

279. コンテナ

「OSは共有、中身だけ分離!」

👉 アプリケーション実行環境を隔離。

🧠

仮想マシン=OSごと箱
コンテナ=OSカーネルを共有する箱

280. クラスタリング

「コンピュータを仲間にして一緒に働かせる」

👉 複数コンピュータを連携させる。

💽 記憶装置編
281. SSD

「半導体で高速アクセス!」

👉 フラッシュメモリなどを利用。

282. HDD

「円盤を回して読む!」

👉 磁気ディスク装置。

283. フラッシュメモリ

「電源切っても記憶が残る」

👉 不揮発性メモリ。

284. 揮発性メモリ

「電源切ったら忘れる」

👉 RAMなど。

285. 不揮発性メモリ

「電源切っても覚えてる」

👉 ROM、フラッシュメモリなど。

286. ROM

「電源を切ってもデータが残る」

👉 基本情報では不揮発性の記憶として覚える。

287. RAM

「作業机。電源切ったら基本的に消える」

👉 主記憶として利用。

288. NAS

「ネットワークにつながったファイル置き場」

Network Attached Storage。

🧠

NAS=ネットワーク上の倉庫

289. SAN

「ストレージ専用ネットワーク」

Storage Area Network。

👉 大規模なストレージ接続などで利用。

290. RAID 6

「RAID5よりさらに冗長性を強化!」

👉 2種類のパリティを使い、複数ディスク故障への耐性を高める。

🌐 ネットワーク編②
291. CIDR

「IPアドレスを/24みたいにまとめて表現!」

例:

192.168.1.0/24

👉 プレフィックス長でネットワーク部を表す。

292. サブネット

「大きなネットワークを小分け!」

👉 ネットワークを複数に分割。

293. グローバルIPアドレス

「インターネット上で使う住所」

294. プライベートIPアドレス

「家庭や組織の内部で使う住所」

🧠

グローバル=外
プライベート=内

295. デフォルトゲートウェイ

「外へ出るときの出口」

👉 異なるネットワークへ通信するときの中継先。

296. QoS

「重要な通信を優先席へ!」

Quality of Service。

👉 通信品質を確保・制御する仕組み。

297. CDN

「コンテンツを近所の倉庫に置く!」

Content Delivery Network。

👉 利用者に近い場所からコンテンツを配信し、負荷・遅延を軽減。

298. プロキシサーバ

「ネットワークの代理人」

👉 クライアントの代理として通信。

299. リバースプロキシ

「サーバ側の代理人」

🧠

プロキシ=利用者側の代理
リバースプロキシ=サーバ側の代理

300. ロードバランサ

「仕事をサーバに均等配分!」

👉 複数サーバへ負荷を分散。

🗄️ データベース編②
301. RDB

「データを表形式で管理」

Relational Database。

👉 行と列からなる表を使う。

302. NoSQL

「RDB以外のデータモデルも使う!」

👉 非リレーショナル型データベースの総称。

303. エンティティ

「管理したいモノ」

例:

学生、商品、社員。

👉 ER図で扱う対象。

304. 属性

「そのモノの特徴」

学生
→ 学籍番号、氏名、年齢

🧠

エンティティ=人
属性=その人の情報

305. カーディナリティ

「1対1?1対多?多対多?」

👉 エンティティ間の関連の多重度。

306. 正規化

「データの重複を整理!」

👉 更新時の矛盾などを防ぎやすくする。

307. 第1正規形

「1つのセルに複数の値を詰め込むな!」

👉 繰返し項目などを排除し、原子値にする。

308. 第2正規形

「部分関数従属を排除!」

複合主キーの場合に特に重要。

🧠

第2=部分を排除

309. 第3正規形

「推移関数従属を排除!」

🧠

第3=推移を排除

310. SQL

「データベースへの命令言語」

🧮 SQL編
311. WHERE

「条件に合う行だけ!」

👉 抽出条件。

312. HAVING

「グループ化した後の条件!」

🧠

WHERE=グループ化前の行
HAVING=GROUP BY後のグループ

313. ORDER BY

「並べ替えろ!」

👉 昇順・降順などでソート。

314. DISTINCT

「重複を消して!」

👉 重複する値を除外。

315. COUNT

「何件ある?」

👉 件数を数える。

316. SUM

「全部足せ!」

317. AVG

「平均を出せ!」

318. MAX

「最大値!」

319. MIN

「最小値!」

320. JOIN

「別テーブルを合体!」

👉 共通する関連などを利用して表を結合。

📐 開発・設計編
321. モジュール強度

「1つのモジュール内部のまとまり具合」

👉 凝集度などと関連。

322. モジュール結合度

「モジュール同士の依存具合」

👉 結合度。

323. 構造化設計

「処理を階層的に分解して設計!」

324. オブジェクト指向

「データと処理をオブジェクトとしてまとめる」

🧠

「このデータと、この仕事は俺が担当!」

325. クラス

「オブジェクトの設計図」

👉 オブジェクトの属性・操作などを定義。

326. インスタンス

「設計図から実際に作ったもの」

🧠

クラス=たい焼きの型
インスタンス=実際のたい焼き

327. 継承

「親クラスの性質を子クラスが受け継ぐ」

🧠

親の能力を子が引き継ぐ

328. カプセル化

「中身を隠して、決めた入口から操作」

👉 データと処理をまとめ、内部実装を隠す。

329. ポリモーフィズム

「同じ命令でも、相手によって動きが違う!」

👉 多態性。

330. UML

「システムを図で表す共通言語」

👉 クラス図、シーケンス図など。

📊 管理・品質編
331. ファンクションポイント法

「機能の量からソフトウェア規模を測る」

👉 機能規模を評価する手法。

332. LOC

「プログラム何行?」

Lines Of Code。

👉 ソースコード行数による規模指標。

333. コードレビュー

「他人のコードをチェック!」

👉 品質向上・問題発見などにつなげる。

334. ウォークスルー

「作成者が説明しながらみんなで確認」

👉 開発者中心で成果物を確認するレビュー技法。

335. インスペクション

「専門的にガッチリ検査!」

👉 より正式・体系的なレビュー。

336. プロジェクトマネージャ

「プロジェクトの指揮官」

👉 進捗・品質・コストなどを管理。

337. ステークホルダ

「プロジェクトに利害関係を持つ人・組織」

🧠

「俺、このプロジェクトに関係あるぞ!」

338. リスク

「将来起きるかもしれない問題」

👉 発生確率や影響などを考えて管理。

339. リスク回避

「危険なこと自体をやめる」

340. リスク低減

「危険を小さくする」

🏢 経営・ITサービス編
341. アウトソーシング

「外部の会社に仕事をお願い!」

342. オフショア開発

「海外へ開発をお願い!」

🧠

OFF=海外へ

343. クラウドコンピューティング

「自分でサーバを持たず、ネット越しに使う!」

344. IaaS

「インフラを借りる」

Infrastructure as a Service。

👉 サーバ・ストレージ・ネットワークなど。

345. PaaS

「開発環境を借りる」

Platform as a Service。

346. SaaS

「完成したソフトをサービスとして使う」

Software as a Service。

🧠

IaaS=土地・建物
PaaS=開発環境付きの建物
SaaS=完成した店

347. オンプレミス

「自社でサーバを持つ!」

🧠

クラウド=借りる
オンプレ=自分で持つ

348. SLA違反

「約束したサービス水準を守れなかった!」

👉 SLAで合意した水準を満たせない状態。

349. SRE

「サービスを安定運用するためのエンジニアリング」

Site Reliability Engineering。

350. DevOps

「開発と運用、仲良く一緒にやろう!」

Development + Operations。

👉 開発と運用の連携を強化する考え方。

🔥 251〜350「ここだけは覚える」

最後に、今日の100語から特に混同しやすいところを抜き出す。

用語 一撃暗記
ALU 計算・論理
レジスタ CPUの超高速メモ帳
PC 次の命令
命令レジスタ 今の命令
パイプライン 流れ作業
スーパースカラ 複数ライン
SIMD 1命令・大量データ
RISC シンプル命令
CISC 複雑命令
デッドロック お互い待ち
セマフォ 共有資源の門番
仮想化 1台を複数っぽく
コンテナ OSを共有する箱
NAS ネットワーク上の倉庫
SAN ストレージ専用ネットワーク
CIDR /24などで表す
CDN 近所の倉庫から配信
プロキシ 利用者側の代理
リバースプロキシ サーバ側の代理
ロードバランサ 負荷分散
エンティティ 管理するモノ
属性 モノの特徴
WHERE 行の条件
HAVING グループの条件
DISTINCT 重複排除
クラス 設計図
インスタンス 実物
継承 親→子
カプセル化 中身を隠す
ポリモーフィズム 同じ命令、違う動作
LOC 何行?
FP法 機能の規模
IaaS インフラ
PaaS 開発基盤
SaaS 完成ソフト
オンプレ 自社保有
DevOps 開発+運用


試験B用対策
(疑似言語が大分分かりやすくなりましたが、あえてcライク
のソースで説明します。

トレースさえ上手く行けば、問題が取れます。
じゃあ、虫食い問題はどうすれば良いのですか?という
考えをする方もいると思いますが、

そういう虫食い問題は小さな数字で、当てはめてみるとよいらしいです。
あるいは、選択肢を使ってトレースするといいようです。

配列中の中の最大値を探すプログラムです。

int getmax(int tbl[],int size)
{
       int max=tbl[0];
       for(int i=0;i<size;i++)
       {
              if(tbl[i]>max)
              {
                     max=tbl[i];
              }
       }
}
int main()
{
       int tbl[5]={"3,4,2,1,5"};
       printf("max is %d\n",getmax(tbl,5));

}

平均を求めるアルゴリズムです。
double CalcAVG()
{
int N[3]={100,50,30};
int sum=0;
for(int i=0;i<3;i++)
{
      sum+=N[i];
}
return sum/3.0;
}


標準偏差を求めるアルゴリズムです。
int N[3]={100,20,50};
double sa=0;
double sum=0;
double avg=0;
for(int i=0;i<3;i++)
{
     sum+=N[i];
}
avg=sum/3.0;

for(int i=0;i<3;i++)
{
     sa+=(avg-N[i])*(avg-N[i]);
}
return sqrt(sa/3.0);


10進数から2進数へと変換するcライクなソース

void dec2bin(int dec)
{
      int tbl[8]={0};
      for(int i=0;i<8;i++)
      {
            tbl[i]=dec&1;//0ビット目が0なら偶数,1ビットが1なら奇数
            //つまり、2で割った余りは、0ビット目だけを見るだけでOK
            dec>>=1;//これは÷2をシフト演算で行っている。
      }
      for(int j=7;j>=0;j--)
      {
            printf("%d",tbl[j]);
            //これで逆順に高い順からビットを表示できる
      }
}

ソートのアルゴリズム(ソース付き)cライクなソースです。

void swap(int *a,int *b)
{
      int tmp;
      tmp=*a;
      *a=*b;
      *b=tmp;
}
void bubblesort(int tbl[],int size)
{
      for(int i=0;i<size;i++)
      {
            for(int j=0;j<size-1-i;j++)
            {
                  if(tbl[j]>tbl[j+1]) swap(&tbl[j],&tbl[j+1]);
            }
      }
}

スタックのcライクなソースです。
#define MAX 4
int stack[MAX]={0};
int SP=0;
void push(int num)
{
     if(SP>(MAX-1)){puts("STACK POINTER OVERFLOW!!");return;}
     stack[SP++]=num;
}
int pop(void)
{
     if(SP<=0){
          puts("STACK UNDERFLOW!!");
          return -1;
     }
     return stack[--SP];
}


cの掛け算ソースです
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int mul(int A,int B)
{
    int Ans=0;
    while(B!=0)
    {
        if((B&1)==1)
            Ans+=A;
        A<<=1;
        B>>=1;
    }
    return Ans;
}

int main()
{
    srand(GetTickCount());
//srand(time(NULL));でも良いのですが(恐らく1秒単位でしか変化しません
    for(int i=0;i<5;i++)
    {
        int A=rand()%10+5;
        int B=rand()%10+5;
        printf("%dx%d=%d\n",A,B,mul(A,B));
    }
}

他にも様々なアルゴリズムがあるので、ネットでcライクなソースとか疑似言語で探してみると良いかもしれません。

自分は大昔(2007年頃、素人に毛が生えた程度のプログラムしか作れなかったポンコツなプログラマだったのですが、今でもポンコツなプログラムしか作れません)
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す