有料プラン

コンピューターサイエンス入門:理論編

2 進数、論理演算、ビット演算、データ構造、計算量、メモリモデルなど、プログラミングの土台となるコンピュータサイエンスの理論知識を学べるコースです。プログラミングを始めたばかりの学習者や、CS の体系的な土台を作りたい現役エンジニアを対象としています。約 13 時間 (1 日 30 分 × 26 日) で 53 レッスンを修了でき、修了後はコードのパフォーマンスや設計判断の根拠を理解した上で実装できるようになります。

レッスン

53件

所要時間

約15分

ランク

初級

学習環境

ブラウザ完結

目標

システム開発に必要なコンピューターサイエンスの理論知識を体系的に習得できます。

概要

2 進数、論理演算、ビット演算、データ構造、計算量、メモリモデルなど、プログラミングの土台となるコンピュータサイエンスの理論知識を学べるコースです。プログラミングを始めたばかりの学習者や、CS の体系的な土台を作りたい現役エンジニアを対象としています。約 13 時間 (1 日 30 分 × 26 日) で 53 レッスンを修了でき、修了後はコードのパフォーマンスや設計判断の根拠を理解した上で実装できるようになります。

できるようになること

ネットワークの仕組み(TCP/IP、HTTP)を理解できる

データベースの設計原則を理解できる

システムアーキテクチャのパターンを学べる

セキュリティの基礎知識を習得できる

設計ドキュメントを読み解けるようになる

よくある質問

前提知識・必要な環境

必須

  • 何らかのプログラミング経験

推奨

  • Webアプリケーションの開発経験

環境

ブラウザ完結(インストール不要)

必要ツール: ブラウザ

内容

テキストでの解説

1

レッスン

コーディングの問題

45

レッスン

クイズ問題

7

レッスン

監修

ゆめさくコード編集部

プログラミング学習をもっと身近に。初心者から実務レベルまで、わかりやすいコンテンツをお届けします。

生田 陸人

ゆめさくエンジニア / 現役ソフトウェアエンジニアRuby on Rails・Nuxt.js・Next.js・CakePHPなどの実務の開発をベースに、学習コンテンツを作成しています。

このコースの導入スライド

レッスンの最初に、図と短い言葉で学ぶ内容をつかみます。

導入スライドをすべて見る

コンピューターサイエンス理論 - 2進数から10進数への変換

0 と 1 の列を数として読む

並んでいるのは 0 と 1 だけですが、桁ごとに決まった重みがあります。ON になっている桁の重みを足し合わせた数が、そのまま10進数の値です。

手で足しても同じ数になることを、次の図解で確かめます。

文字列で持っている2進数は、parseInt の第2引数に 2 を渡すと10進数になります。

parseInt("10101010", 2); // 170

1 / 4

2進数から10進数への変換

コンピューターサイエンス理論 - 10進数から2進数への変換

2 で割り続けて余りを積む

10進数を 2 で割り、出てきた余りを下の桁から積み上げると2進数になります。割り算を止めるのは、商が 0 になったときです。

余りの列がどう桁に対応するのかを、次の図解で逆から確かめます。

JavaScript は toString(2) で一発ですが、中でやっているのは 2 で割り続ける手続きです。

(13).toString(2); // "1101"

1 / 4

10進数から2進数への変換

コンピューターサイエンス理論 - ビットAND演算でフラグ判定

設定を1つの整数に押し込める

真偽値をいくつも並べる代わりに、1つの整数の各桁へ設定を押し込められます。ある機能が有効かどうかを調べるのが AND の役目です。

この & がビット列に何をしているのかを、次の図解で8桁ぶん並べて見ます。

perm & WRITE が 0 かどうかだけを見ます。0 以外なら、その桁は立っています。

const READ = 1, WRITE = 2, EXEC = 4; const perm = 5; if (perm & WRITE) { /* 書き込める */ }

1 / 4

ビットAND演算でフラグ判定

コンピューターサイエンス理論 - OR / XOR でフラグを操作する

読むだけでなく書き換える

AND で読み出した設定を、今度は書き換えます。OR は桁を立て、XOR は立っている桁と消えている桁を入れ替えます。

2つの演算が同じマスクでどう割れるのかを、次の図解で押し比べます。

OR は何度かけても結果が変わりませんが、XOR は同じ値を2回かけると元へ戻ります。

let perm = 5; perm = perm | 2; // 書き込みを許可する perm = perm ^ 4; // 実行の可否を反転する

1 / 4

OR / XOR でフラグを操作する

このコースの動く図解

動かしながら、仕組みや変化を目で確かめられます。

動く図解をすべて見る

こんな人におすすめ

独学でプログラミングを学んできた人

を目指す人

なんとなく動くコードから卒業したい人

を目指す人

システム全体を見渡せるエンジニアを目指す人

を目指す人

おすすめしない人

  • ×まだコードを書いた経験がない人

腕試しに、1問だけ解いてみる

カメ師範「十の巻、開いてみるか」

1問目は無料で解けます。教材を見ないで、依頼と完成条件だけを読んで書いてみてください。

アルゴリズム道場 カメ師範の十の巻

前提が不安な方へ

先にこちらを通しておくと、つまずきにくくなります

次に学ぶなら

このコースを終えたあとに進むと、無理なく続けられます

あわせて学びたい

同時に進めると、理解が早くなる組み合わせです