はじめに
電気のON \OFF
コンピュータの基本的な動き
コンピュータの基本的な動きは、大きく分けて2つの側面から捉えることができます。
命令の流れをどう制御するか(制御フロー)と、データをどう扱うか(データフロー)になります。1. 命令の流れをどう制御するか(制御フロー)
プログラムとは、コンピュータに対する「命令書」です。その命令をどのような順番で、どのような条件で実行させるかを決めるのが「制御フロー」です。そして、驚くべきことに、どんなに複雑なプログラムも、たった3つの基本的な制御構造の組み合わせでできています。これは「構造化定理」として知られており、プログラミングの根幹をなす考え方です。
① 順次実行 (Sequential Execution)
「書かれた順番に、上から下へ一つずつ実行する」これは最も基本的で、プログラムはその順番通りに作業します。
例
let a = 10; // 1. aに10を入れる
let b = 20; // 2. bに20を入れる
let c = a + b; // 3. aとbを足してcに入れる
② 条件分岐 (Conditional Branch / Selection)
「もし〜〜ならばAを、そうでなければBを実行する」
特定の条件によって、実行する処理を変える動きです。これにより、プログラムは状況に応じて賢く振る舞えるようになります。
例
if (天気が “雨”) { // “傘を持っていく” という処理を実行
}
else { // “帽子をかぶる” という処理を実行
}
③ 繰り返し (Loop / Iteration)
「ある条件が満たされている間、同じ処理を何度も実行する」
大量のデータを扱ったり、特定の作業を自動化したりする際に不可欠です。
例
while (皿がまだ残っている) { // “皿を1枚洗う” という処理を実行
}
コンピュータの命令の実行方法は、この「順次」「分岐」「繰り返し」の3パターンしかありません。 これらをブロックのように組み合わせることで、ゲーム、ウェブサイト、AIなど、あらゆるものが作られています。
データをどう扱うか(データフロー)
プログラムは、結局のところ「データ」を処理するためのものです。そのデータをどのように扱うかという視点で見ると、コンピュータの動きは以下の4つのステップにまとめられます。
① 入力 (Input)「外部からデータを受け取ること」
キーボードからの文字入力、マウスのクリック、ファイルからの読み込み、インターネット経由での情報受信など、コンピュータが処理するための元ネタを取り込むステップです。
② 記憶 (Storage / Memory)「受け取ったデータや処理の途中結果を覚えておくこと」
データはメモリ上の「変数」や「配列」といった箱に入れて、一時的に保存されます。必要なときにいつでも取り出せるようにするためです。
③ 加工 (Processing)「データを処理して、新しいデータを作り出すこと」
プログラムの心臓部です。
演算: 足し算や引き算などの「算術演算」、そして「AかつB」や「AまたはB」といった「論理演算」などを行います。
抽出: たくさんのデータの中から、特定の条件に合うものだけを取り出す(フィルターする)ことです。これも「加工」の一種と捉えられます。例えば、「全顧客リストの中から、東京都在住の人だけを抽出する」といった処理です。そして、この「加工」を行う際に、先ほどの制御フロー(順次・分岐・繰り返し)が道具として使われるのです。
④ 出力 (Output)「処理した結果を外部に知らせること」
計算結果を画面に表示する、データをファイルに保存する、プリンターで印刷する、ネットワークを通じて他のコンピュータに送信するなど、処理の結果を人間や他のシステムに伝えるステップです。
5大装置
古典的な「ノイマン型コンピュータ」の5大装置
制御
演算
記憶
入力
出力
ハードウェア(Hardware)
ソフトウェア (Software)
ネットワーク & 通信 (Network & Communication)
プロトコル(Protocol)
コンピュータ同士が通信を行うための「共通のルール(規約)」のことです。人間同士の会話に例えると、「言語」や「マナー」に相当します。もし、話す言語が異なったり、会話の手順(電話で「もしもし」と言うなど)がバラバラだったりすると、意思疎通はできません。コンピュータも同様に、メーカーやOS(WindowsやMacなど)が違っても、同じプロトコルに従うことでデータのやり取りが可能になります。なぜプロトコルが必要なのか?インターネットは、世界中の異なる種類の機器(PC、スマホ、サーバー、ルーターなど)が接続された巨大なネットワークです。これらが円滑に連携するために、以下のような取り決めが必要です。
データの形式: どのような形でデータを送るか(文字コードやパケットの構造)。
エラー時の対応: データが途中で消えた場合、再送するか無視するか。
宛先の特定: どのように相手を見つけるか。
これらを厳密に定めたものがプロトコルです。
代表的なプロトコルと役割
プロトコルは役割ごとに階層(レイヤー)に分かれています。手紙を出すプロセスに例えると分かりやすくなります。
1.アプリケーション層(手紙の内容を書く):ユーザーが直接触れるサービスごとのルールです。
HTTP / HTTPS: Webサイトを閲覧するためのルール(Sがつくと暗号化され安全)。
SMTP / IMAP / POP3: メールの送受信を行うためのルール。
DNS: URL(https://www.google.com/search?q=google.comなど)をIPアドレスに変換するためのルール(インターネットの電話帳)。
2. トランスポート層(配送方法を決める):データの信頼性や届け方を管理します。
TCP (Transmission Control Protocol): 確実性を重視するルール。データが届いたか確認し、欠けていれば再送します(Web閲覧やメールなど)。
UDP (User Datagram Protocol): スピードを重視するルール。確認手順を省き、多少データが欠けても送り続けます(動画配信やオンラインゲームなど)。
3. インターネット層(宛先へ届ける):ネットワーク上の住所(IPアドレス)を使って、最適なルートでデータを運びます。
IP (Internet Protocol): データの宛先(IPアドレス)を管理し、パケット(小包)として届けるルール。現在のインターネットの根幹です。
4. ネットワークインターフェース層(物理的に送る:実際にケーブルや電波でデータを流すためのルールです。
Ethernet(イーサネット): LANケーブルなどでの通信規格。
Wi-Fi: 無線LANの通信規格。
プロトコルスタック
通常、これらのプロトコルは単独ではなく、組み合わせて使われます。これをプロトコルスタックと呼びます。例えば、あなたがこの回答をブラウザで見ている時、裏側では以下のような連携が起きています。
HTTPSでデータを要求>TCPでデータの抜け漏れがないように管理>IPであなたのデバイスまで経路を割り出し>Wi-Fi (Ethernet)で電波としてスマホやPCに届けています。
この一連の流れが世界共通で守られているため、インターネットは成り立っています。
SSID(Service Set Identifier)
Wi-Fiネットワークの「名前」のことです。スマホやPCが無線LAN(Wi-Fi)に接続する際、どの親機(アクセスポイント)に繋ぐべきかを識別するためのID(識別子)として機能します。
SSIDの主な役割と仕組み
空中には、近隣の家やカフェ、公共施設など、無数のWi-Fiの電波が飛び交っています。SSIDは、これらが混信しないように自分のネットワークを特定するために使われます。最大32文字の英数字や記号で設定され、大文字と小文字は区別されます(例:HomeWiFi と homewifi は別物)。端末のWi-Fi設定画面にズラリと表示されるリストは、近くで飛んでいるSSIDの一覧です。
周波数帯によるSSIDの違いとして、最近のルーターは、同じルーターでも周波数帯ごとに異なるSSIDを持っていることが一般的です。末尾の文字で見分けることが多いです。
xxxx-a / -5g (5GHz帯): 高速だが障害物に弱い。動画視聴などに適しています。
xxxx-g / -2g (2.4GHz帯): 速度はそこそこだが、壁や床などの障害物に強く遠くまで届く。家電との干渉に注意が必要です。
セキュリティとマルチSSID
マルチSSID機能:1台のルーターで複数のSSID(名前)を使い分ける機能です。用途に応じてネットワークを分離し、セキュリティを高めます。
メインSSID: 家族のPCやスマホ用(暗号化レベルが高い)。
ゲストポート(ゲストSSID): 来客用。インターネットには繋がるが、家庭内の他の機器(NASやプリンターなど)にはアクセスできないよう隔離されています。
ステルス機能(SSID隠蔽):SSIDを周囲に表示させない(隠す)機能です。一見セキュリティが高そうに見えますが、実はツールを使えば簡単に見つけられるため、過信は禁物です。一部の端末で接続が不安定になる原因にもなります。
SSIDを設定・運用する際は、以下の点に注意してください。
・個人情報を入れない:SSIDは近隣の人にも見えています。本名、住所、電話番号などを推測できる名前(例:Tanaka_House_101)は絶対避けてください。
・デフォルト設定から変更する:メーカー既定のSSID(例:aterm-xxxxxx や Buffalo-x-xxxx)は、ルーターの機種やメーカーが特定されやすく、脆弱性を突かれるリスクがわずかに高まります。可能であれば独自のランダムな文字列に変更することをお勧めします。
・パスワード(暗号化キー)とは別物
SSIDは「名前」であり、接続するための「鍵」は暗号化キー(パスワード)です。SSIDを変更しても、暗号化キーが弱ければ意味がありません。
装備
レポート
- 10進法と2進法
- 回路と計算
- データベースについて
- グラフについて
- core