入門 コンピュータ科学 IT を支える技術と理論の基礎知識(ニュウモン コンピュータカガク アイティーヲササエルギジュツトリロンノキソチシキ)
ハードウェア- 著者:
- J.Glenn Brookshear/神林 靖/長尾 高弘(ジェイ グレン ブルックシャー/カンバヤシ ヤスシ/ナガオ タカヒロ)
- 出版社:
- ドワンゴ
- 出版日:
- 2017年03月15日頃
- ISBN:
- 9784048930543
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
◆米国大学の教養課程で使用されているコンピュータ科学の定番教科書。
きわめてオーソドックスなコンピュータ科学の教科書。コンピュータ科学が抽象化ツールの階層構造になっているという視点で統一的に記述されている。
※本書は 2014 年 2 月に株式会社 KADOKAWA /アスキー・メディアワークスから刊行された『入門 コンピュータ科学』の再刊行書籍であり、同一の内容です。再刊行にあたり、旧版刊行後に発見された誤植等を修正しております。
第 0 章 序章
0.1 アルゴリズムの役割
0.2 計算の歴史
0.3 アルゴリズムの科学
0.4 抽象化
0.5 本書の構成
0.6 社会的影響
第 1 章 データストレージ
1.1 ビットとその格納
1.2 メインメモリ
1.3 マスストレージ
1.4 ビットパターンとして情報を表現する
1.5 2 進数の体系
1.6 整数を格納する
1.7 小数を格納する
1.8 データ圧縮
1.9 通信エラー
第 2 章 データ操作
2.1 コンピュータアーキテクチャ
2.2 マシン語
2.3 プログラムの実行
2.4 算術論理命令
2.5 他の装置との通信
2.6 他のアーキテクチャ
第 3 章 オペレーティングシステム
3.1 オペレーティングシステムの歴史
3.2 オペレーティングシステムのアーキテクチャ
3.3 マシンの動作を調整する
3.4 プロセス間の競合を調整する
3.5 セキュリティ
第 4 章 ネットワークとインターネット
4.1 ネットワークの基礎
4.2 インターネット
4.3 ワールドワイドウェブ
4.4 インターネットプロトコル
4.5 セキュリティ
第 5 章 アルゴリズム
5.1 アルゴリズムの概念
5.2 アルゴリズムの表現
5.3 アルゴリズムの発見
5.4 繰返し構造
5.5 再帰構造
5.6 効率性と正当性
第 6 章 プログラミング言語
6.1 歴史的展望
6.2 伝統的なプログラミング概念
6.3 手続きユニット
6.4 言語の実装
6.5 オブジェクト指向プログラミング
6.6 並行動作のプログラミング
6.7 宣言型プログラミング
第 7 章 ソフトウェア工学
7.1 ソフトウェア工学という学問
7.2 ソフトウェアライフサイクル
7.3 ソフトウェア工学の方法論
7.4 モジュール性
7.5 ツール
7.6 品質保証
7.7 ドキュメンテーション
7.8 ヒューマンマシンインタフェース
7.9 ソフトウェアの所有権と責任
(以下の章については、登録可能文字数制限の都合上節情報を省略しています)
第 8 章 データ抽象
第 9 章 データベースシステム
第 10 章 コンピュータグラフィックス
第 11 章 人工知能
第 12 章 計算の理論
付録 A ASCII
付録 B 2 の補数表現を扱う回路
付録 C 単純なマシン語
付録 D 高レベルプログラミング言語
付録 E 繰返し構造と再帰構造の同等性
付録 F 練習問題解答
技書の森解説
ビットの表現から計算の理論まで、コンピュータ科学 を構成する主要分野を 1 冊で見渡せる教科書です。原著は J. Glenn Brookshear の『 Computer Science: An Overview 』で、本書はその第 11 版の翻訳。米国の大学の教養課程で使われてきた定番テキストです。邦訳は神林靖・長尾高弘の共訳で、 2014 年に KADOKAWA/アスキー・メディアワークスから刊行された訳書を誤植修正のうえ、 2017 年 3 月にドワンゴが再刊行 (発売 = KADOKAWA) したものが本書にあたります。内容は 2014 年版と同一であることを版元が明言しています。
全 13 章と付録の構成
構成は、序章 (第 0 章) でアルゴリズムの役割・計算の歴史・本書全体を貫く「抽象化」の考え方を導入した後、第 1 章データストレージ、第 2 章データ操作 (コンピュータアーキテクチャとマシン語) 、第 3 章オペレーティングシステム、第 4 章ネットワークとインターネット、第 5 章アルゴリズム、第 6 章プログラミング言語、第 7 章ソフトウェア工学、第 8 章データ抽象、第 9 章データベースシステム、第 10 章コンピュータグラフィックス、第 11 章人工知能、第 12 章計算の理論と進みます。巻末には ASCII や 2 の補数表現を扱う回路、単純なマシン語などの付録と練習問題の解答が収められています。
抽象化の階層という統一視点が核心
版元はこの本を「コンピュータ科学が抽象化ツールの階層構造になっているという視点で統一的に記述されている」と紹介しており、この一言が本書の価値の核心です。コンピュータは、電圧の高低をビットへ、ビットの列を数値や文字へ、機械語の列をプログラミング言語へと、下の層の詳細を隠す抽象化を何段も積み重ねてできています。本書の章の並びはこの階層をほぼ下から上へ辿る順序になっているため、各章のトピックが分野の寄せ集めではなく 1 つの階段として繋がって見えます。オペレーティングシステムがなぜハードウェアとアプリケーションの間に必要なのか、プログラミング言語はマシン語の何を隠しているのか、といった「層と層の関係」は、個別分野の入門書を何冊読んでも得にくい視点です。
想定読者と読後に得られる視点
想定読者は、プログラミングは書けるがコンピュータサイエンスを体系的に学んだことがない実務者、情報系学部の初年次学生、そして基本情報技術者試験などの学習で断片的に覚えた知識を 1 枚の地図に繋げ直したい人です。特定のプログラミング言語の習得を目的とする本ではないため、言語経験の有無よりも「仕組みを原理から知りたい」という動機の方が重要です。読み通すと、プロセス間の競合をどう調整するか、データベースは抽象化のどの位置にある道具か、「計算できない問題が存在する」とはどういう意味か、といった問いを CS の見取り図の中に置いて考えられるようになります。新しい技術に出会ったとき「これはどの層の話か」を判別できるようになることが、この本が与える最も息の長い効用です。
刊行時期の注意と類書との使い分け
注意すべきは刊行時期です。底本の原著第 11 版を訳した邦訳は 2014 年刊 (2017 年再刊) であり、それ以降の深層学習の急速な発展やクラウド環境の変化は反映されていません。人工知能 を扱う第 11 章も刊行時点の水準で書かれています。ただし本書の主戦場は 2 進数表現・アーキテクチャ・アルゴリズム・計算理論といった変化の遅い基礎であり、「 2014 年時点の教科書」という割引を差し引いても学ぶ価値が残る部分がほとんどです。
手を動かして CPU や OS を自作 しながら計算機の階層を体感したい人には『コンピュータシステムの理論と実装』が対になる選択肢で、広さより深さを求めるならそちらが向きます。すぐ使える特定言語やフレームワークの実務レシピを求める人にも本書は向きません。逆に、個別分野の専門書へ進む前に全体の見取り図を先に手に入れたい人、資格学習を暗記から理解へ切り替えたい人にとっては、通観型教科書の代表格である本書が効率の良い投資になります。通読にこだわらず、序章で全体の枠組みを掴んでから関心の強い分野の章へ進み、地図を少しずつ埋めていく読み方も有効です。
言及 Qiita 記事 (1 件)
この本に興味がある方におすすめ
この本に関連
関連記事
アルゴリズム本ガイド - 競プロだけじゃない、実務に活きる選び方
アルゴリズム本の 3 タイプと、実務でアルゴリズムの知識が活きる場面、数学が苦手な人向けの学習ルートを紹介します。
OS / 低レイヤー本ガイド - コンピュータの仕組みを学ぶ技術書の選び方
OS、コンパイラ、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。