generated at
みんなのコンピュータサイエンス
「コンピュータに対するコンパクトな知識地図」
ohbarye 個々を詳解しているわけではないので用語を知るにとどまる
9章にあった「優れたプログラマであれば知っているべきコンピュータサイエンスに関する最小限の知識」というのが全て
理解のためには別途掘り下げる必要がある

1章〜5章は離散数学計算量データ構造アルゴリズムの基礎知識の説明

3章 戦略
反復再帰まずはブルートフォースして徐々にA* algorithmのようなヒューリスティック手法や分割統治法で改善していく、みたいなアプローチの紹介

5章 アルゴリズム

6章 データベース
ohbarye RDBMSについては読み飛ばした
NoSQLでは以下に触れている
SQL vs. NoSQL
リレーショナルデータベースはデータ中心
データがどのように必要とされるかに関わらず、データ構造を最大限に活用し、重複を取り除く
非リレーショナルデータベースはアプリケーション中心
必要に応じてアクセスと活用を手助けする
NoSQLデータベースを使うことで、大規模、揮発性、非構造のデータを素早く、効率的に保存することが可能
固定スキーマとスキーママイグレーションを気にすることなく開発できる
ただしプログラマの責任が増す
分散データベース
可用性パフォーマンスのために分散データベースシステムを構成する
クエリエンジンがGIS拡張に対応していればデータベースで対応できる
Databaseで利用できるindexの種類には地理情報を扱えるものもある
CSV, JSON, XML, SQL dumpなど

7章 コンピュータ
プレイステーションのCDをPCで実行できないのは、CPUアーキテクチャが違うから
書かれている命令を解釈できない
現代ではx86がある程度一般的
CPURAMまわり
あるメモリアドレスにアクセスされた直後、高確率で同じアドレスへのアクセスが発生する
あるメモリアドレスにアクセスされた直後、高確率で隣接するアドレスへのアクセスが発生する
CPU組み込みの補助メモリ
レジスタよりちょっと遅いぐらい
50KB以上にするにはコストがかかる
L1よりやや低速だが容量を確保できる
200KB
L1~L3キャッシュは重要なのでCPUのシリコン空間の大部分を占める
コンピュータが常にRAMからデータを取り込んでいる状態
プログラムが処理するデータとプログラムがRAMに収まらずRAMが不足すると、コンピュータは常にディスクとRAM間でデータを転送することになるので性能が著しく低下する

9章
ohbarye オブジェクト指向を取り上げていなかったのは意外