コース一覧
コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB
IPアドレス (IPv4 / IPv6)

コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

ソート、探索、再帰などのアルゴリズムに加え、OS (プロセス、メモリ、ファイルシステム)、ネットワーク (TCP/IP、HTTP、DNS、CDN)、データベースまで、Web エンジニアに必要な CS の基礎を一本で学べる総合コースです。エンジニア転職を目指す学習者や、CS 出身でない現役エンジニアを対象としています。約 34 時間 (1 日 30 分 × 68 日) で 135 レッスンを修了でき、修了後は技術選定やシステム設計の議論に自信を持って参加できるようになります。

1
再帰の基礎
0. 階乗(再帰)5分
1. フィボナッチ数(再帰)5分
2. 累乗(再帰)5分
3. 配列の合計(再帰)5分
4. 桁数を数える(再帰)5分
5. 文字列を逆順(再帰)5分
6. ユークリッドの互除法(GCD)5分
7. 第1章まとめクイズ — 再帰の基礎5分
2
第2章 探索
0. 線形探索で位置を返す5分
1. 二分探索 (反復版)5分
2. 二分探索 (再帰版)5分
3. lower_bound (最初に >= target の位置)5分
4. ピーク要素検索5分
5. 回転ソート配列での探索5分
6. 第2章まとめクイズ5分
3
ソート
0. バブルソート実装5分
1. 選択ソート5分
2. 挿入ソート5分
3. マージソート5分
4. クイックソート5分
5. カウントソート5分
6. 比較関数つきソート5分
7. 第3章まとめクイズ5分
4
配列 / 文字列の応用
0. 双方向ポインタで和 = K5分
1. スライド窓の最大和5分
2. 回文判定5分
3. 重複なし最長部分文字列5分
4. 大きな数の文字列乗算5分
5. アナグラムグルーピング5分
6. 第4章まとめクイズ — 配列 / 文字列の応用5分
5
クラスと OOP
0. 長方形クラス(面積と周長)5分
1. スタッククラス(push と pop)5分
2. キュークラス(enqueue と dequeue)5分
3. 単方向リンクリスト5分
4. 二分探索木 (BST) への挿入5分
5. カウンタクラス(機能合成)5分
6. 第 5 章クイズ — クラスと OOP5分
6
動的計画法 (基礎)
0. メモ化フィボナッチ5分
1. DP配列でフィボナッチ5分
2. 階段の登り方5分
3. コイン両替最小枚数5分
4. 0/1 ナップサック問題5分
5. 最長共通部分列 (LCS)5分
6. 第6章まとめクイズ5分
7
総合演習
0. ソート済み 2 配列のマージ5分
1. 配列の k 回転5分
2. カッコの妥当性5分
3. ローマ数字を整数に5分
4. 整数をローマ数字に5分
5. 雨水を溜める5分
6. 最終総まとめクイズ5分
8
[OS] Section 1. OS とは
0. コンピューターとOSの役割15分
1. OSの歴史(バッチ→マルチタスク→マルチユーザー)15分
2. カーネルとユーザーランド15分
3. システムコールの仕組み15分
4. Linux / macOS / Windows のアーキ比較15分
9
[OS] Section 2. プロセスとスレッド
0. プロセスとは15分
1. スレッドとプロセスの違い15分
2. コンテキストスイッチ15分
3. スケジューラとアルゴリズム15分
4. プロセス間通信(IPC)15分
10
[OS] Section 3. メモリ管理
0. メモリ階層(レジスタ→キャッシュ→RAM→ディスク)15分
1. 仮想メモリ15分
2. ページングとスワップ15分
3. mmap とメモリマップトファイル15分
4. ガベージコレクション概要15分
11
[OS] Section 4. ファイルシステム
0. ファイルシステムとは15分
1. i-node とディレクトリ15分
2. ext4 / APFS / NTFS の違い15分
3. ジャーナリングと耐障害性15分
4. パーミッションと所有者15分
12
[OS] Section 5. 同期と並行性
0. レースコンディション15分
1. Mutex と Semaphore15分
2. デッドロック15分
3. 非同期と並行15分
4. イベントループと epoll15分
13
[ネットワーク] ネットワークの全体像
0. ネットワークとは8分
1. OSI 7階層モデル10分
2. TCP/IP 4階層モデル9分
3. パケットとフレーム9分
4. ルーター・スイッチ・ハブ9分
14
[ネットワーク] IP とルーティング
0. IPアドレス (IPv4 / IPv6)10分
1. サブネットマスクと CIDR11分
2. NAT とプライベートIP9分
3. ルーティングと経路選択10分
4. ファイアウォール基礎9分
15
[ネットワーク] TCP / UDP
0. TCP と UDP の違い9分
1. 3-way ハンドシェイク9分
2. 輻輳制御と再送10分
3. UDP の用途 (DNS / 動画 / ゲーム)8分
4. ポート番号と well-known port9分
16
[ネットワーク] HTTP / HTTPS
0. HTTP の基本10分
1. HTTP メソッド9分
2. HTTPS と TLS ハンドシェイク10分
3. HTTP/2 と HTTP/3 (QUIC)10分
4. REST API の設計原則10分
17
[ネットワーク] DNS とドメイン
0. DNS とは8分
1. レコードタイプ10分
2. 名前解決の流れ10分
3. DNS キャッシュと TTL9分
4. CDN の仕組みと Anycast10分
18
[ネットワーク] 応用
0. ロードバランサ (L4 / L7)10分
1. プロキシとリバースプロキシ9分
2. WebSocket とリアルタイム通信9分
3. gRPC と HTTP/2 利用10分
19
[データベース] データベースの基礎
0. データベースとは8分
1. RDB と NoSQL の違い8分
2. データベースの歴史8分
3. エンティティ関係モデル (ER)8分
4. 主キー・外部キー・候補キー8分
20
[データベース] 正規化
0. 正規化とは何か8分
1. 第1正規形8分
2. 第2正規形8分
3. 第3正規形8分
4. 非正規化のトレードオフ8分
21
[データベース] インデックスと B-tree
0. インデックスの役割8分
1. B-tree の仕組み8分
2. B+tree(実際の DB 実装)8分
3. ハッシュインデックス8分
4. カバリングインデックス8分
22
[データベース] トランザクションと ACID
0. トランザクションとは8分
1. ACID 特性8分
2. 分離レベル8分
3. MVCC(マルチバージョン同時実行制御)8分
4. デッドロックと回避8分
23
[データベース] クエリ最適化
0. クエリプランナの役割8分
1. EXPLAIN の読み方8分
2. Nested Loop / Hash / Merge Join8分
3. インデックスチューニング8分
4. 統計情報とカーディナリティ8分
24
[データベース] スケーリング
0. レプリケーション8分
1. シャーディング8分
2. CAP 定理8分
3. 結果整合性8分
4. NewSQL と分散 SQL8分

コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

01階乗(再帰)
02フィボナッチ数(再帰)
03累乗(再帰)
04配列の合計(再帰)
05桁数を数える(再帰)
06文字列を逆順(再帰)
07ユークリッドの互除法(GCD)
08第1章まとめクイズ — 再帰の基礎
09線形探索で位置を返す
10二分探索 (反復版)
11二分探索 (再帰版)
12lower_bound (最初に >= target の位置)
13ピーク要素検索
14回転ソート配列での探索
15第2章まとめクイズ
16バブルソート実装
17選択ソート
18挿入ソート
19マージソート
20クイックソート
21カウントソート
22比較関数つきソート
23第3章まとめクイズ
24双方向ポインタで和 = K
25スライド窓の最大和
26回文判定
27重複なし最長部分文字列
28大きな数の文字列乗算
29アナグラムグルーピング
30第4章まとめクイズ — 配列 / 文字列の応用
31長方形クラス(面積と周長)
32スタッククラス(push と pop)
33キュークラス(enqueue と dequeue)
34単方向リンクリスト
35二分探索木 (BST) への挿入
36カウンタクラス(機能合成)
37第 5 章クイズ — クラスと OOP
38メモ化フィボナッチ
39DP配列でフィボナッチ
40階段の登り方
41コイン両替最小枚数
420/1 ナップサック問題
43最長共通部分列 (LCS)
44第6章まとめクイズ
45ソート済み 2 配列のマージ
46配列の k 回転
47カッコの妥当性
48ローマ数字を整数に
49整数をローマ数字に
50雨水を溜める
51最終総まとめクイズ
52コンピューターとOSの役割
53OSの歴史(バッチ→マルチタスク→マルチユーザー)
54カーネルとユーザーランド
55システムコールの仕組み
56Linux / macOS / Windows のアーキ比較
57プロセスとは
58スレッドとプロセスの違い
59コンテキストスイッチ
60スケジューラとアルゴリズム
61プロセス間通信(IPC)
62メモリ階層(レジスタ→キャッシュ→RAM→ディスク)
63仮想メモリ
64ページングとスワップ
65mmap とメモリマップトファイル
66ガベージコレクション概要
67ファイルシステムとは
68i-node とディレクトリ
69ext4 / APFS / NTFS の違い
70ジャーナリングと耐障害性
71パーミッションと所有者
72レースコンディション
73Mutex と Semaphore
74デッドロック
75非同期と並行
76イベントループと epoll
77ネットワークとは
78OSI 7階層モデル
79TCP/IP 4階層モデル
80パケットとフレーム
81ルーター・スイッチ・ハブ
82IPアドレス (IPv4 / IPv6)
83サブネットマスクと CIDR
84NAT とプライベートIP
85ルーティングと経路選択
86ファイアウォール基礎
87TCP と UDP の違い
883-way ハンドシェイク
89輻輳制御と再送
90UDP の用途 (DNS / 動画 / ゲーム)
91ポート番号と well-known port
92HTTP の基本
93HTTP メソッド
94HTTPS と TLS ハンドシェイク
95HTTP/2 と HTTP/3 (QUIC)
96REST API の設計原則
97DNS とは
98レコードタイプ
99名前解決の流れ
100DNS キャッシュと TTL
101CDN の仕組みと Anycast
102ロードバランサ (L4 / L7)
103プロキシとリバースプロキシ
104WebSocket とリアルタイム通信
105gRPC と HTTP/2 利用
106データベースとは
107RDB と NoSQL の違い
108データベースの歴史
109エンティティ関係モデル (ER)
110主キー・外部キー・候補キー
111正規化とは何か
112第1正規形
113第2正規形
114第3正規形
115非正規化のトレードオフ
116インデックスの役割
117B-tree の仕組み
118B+tree(実際の DB 実装)
119ハッシュインデックス
120カバリングインデックス
121トランザクションとは
122ACID 特性
123分離レベル
124MVCC(マルチバージョン同時実行制御)
125デッドロックと回避
126クエリプランナの役割
127EXPLAIN の読み方
128Nested Loop / Hash / Merge Join
129インデックスチューニング
130統計情報とカーディナリティ
131レプリケーション
132シャーディング
133CAP 定理
134結果整合性
135NewSQL と分散 SQL

コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

IPアドレス (IPv4 / IPv6)

43 億では、世界中の機器に配りきれなかった

IP アドレスは、ネットワーク上の機器を 1 つに特定するための番号です。手紙の宛先と同じで、これがないとデータの届け先を書けません。

いま主流の IPv4 は 32 ビットの番号で、192.0.2.15 のように 8 ビットずつ 4 つに区切って書きます。取りうる値は 2 の 32 乗、およそ 43 億通りです。設計された 1980 年代には十分すぎる数でしたが、1 人が何台も持ち歩き、家電まで通信する時代には足りません。

そこで用意されたのが IPv6 です。128 ビットあるので、総数は 10 の 38 乗という桁になります。2001:db8::1 のように 16 進数を並べて書き、連続する 0 は省略できます。

IPv4IPv6
長さ32 ビット128 ビット
総数約 43 億事実上尽きない
書き方10 進を 4 つ16 進を 8 つ

足りないまま、なぜ今日も IPv4 で暮らせているのか

IPv6 は 1998 年に規格が固まりましたが、置き換えは今も途中です。IPv4 のまま何とかする方法が先に見つかってしまったからです。

世界中で一意である必要があるのは、外に出ていく分だけです。家や会社の中だけで通じればよい番号は、他所と重複していてもかまいません。そこで内部専用として次の範囲が予約されました。

  • 10.0.0.0 から 10.255.255.255
  • 172.16.0.0 から 172.31.255.255
  • 192.168.0.0 から 192.168.255.255

家の機器が 192.168 で始まる番号を持っているのは、この取り決めのためです。この番号のままでは外へ出られないので、家の出口で外でも通じる番号に書き換えられてから送り出されます。世界で一意な番号をグローバル IP、内部専用の番号をプライベート IP と呼びます。

では、いつ IPv6 に切り替わるのでしょうか。実際には「切り替わる」というより、両方を同時に持つ機器が増えていく形で進んでいます。いまのスマホは多くの場合、IPv4 と IPv6 の両方の番号を持っていて、相手が対応していれば IPv6 で、していなければ IPv4 で話します。だから利用者は移行に気づきません。作る側として注意が要るのは、設定ファイルに IP アドレスを直接書くときです。片方しか想定していない書き方をすると、片側の経路だけが静かに落ちます。

開発で毎日打つ 2 つの番号

手元の開発で一番よく打つのは 127.0.0.1 です。これは「自分自身」を指す特別な番号で、localhost という名前でも同じ場所を指します。手元で起動したサーバーに手元のブラウザからつなぐとき、通信は外へ出ずに自分の中で折り返します。

もう 1 つ、サーバーの起動設定で 0.0.0.0 を見かけます。こちらは「自分が持っているすべての口で待ち受ける」という意味です。127.0.0.1 で待ち受けると自分からしかつながらず、0.0.0.0 にすると同じネットワークの他の機器からも届くようになります。「手元では動くのにスマホから見えない」という詰まり方の定番の原因なので、違いを押さえておいてください。

なお、家のスマホや PC の番号は固定ではありません。Wi-Fi につなぎ直すたびに自動で割り当て直されるのが普通です。サーバーのように常に同じ番号でいてほしい機器だけ、明示的に固定します。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • ビット2進数の1桁。0 か 1 のどちらか
  • 設計何をどう作るかを決める前工程
  • サーバークライアント(ブラウザなど)がリクエストを送り、サーバーがレスポンスを返す。
  • ブラウザユーザーから見たWebのクライアント
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/27·更新 2026/08/26

関連レッスン

  • サブネットマスクと CIDR

    ネットワーク部とホスト部を区切るサブネットマスクと CIDR 表記を学びます。

  • NAT とプライベートIP

    家庭内 LAN とインターネットをつなぐ NAT の仕組みを理解します。

  • ルーティングと経路選択

    ルーターがパケットの次の宛先を決めるアルゴリズムを学びます。

  • ファイアウォール基礎

    通信を許可・遮断するファイアウォールの基本動作を理解します。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。

復習ミニクイズ

次のうち、プライベート IP アドレスはどれですか