理工系の コンピュータ基礎学
基本原理からコンピュータ科学をわかりやすく解説したバイブル的教科書の新版。十数刷を重ねた旧著を書き改め,高校の情報科教育に対応した。現代的な情報リテラシーと,情報処理技術者試験レベルの学力を身につける決定版教科書。
- 発行年月日
- 2006/03/20
- 判型
- A5
- ページ数
- 240ページ
- ISBN
- 978-4-339-02413-5
- 内容紹介
- 目次
基本原理からコンピュータ科学をわかりやすく解説したバイブル的教科書の新版。十数刷を重ねた旧著を書き改め,高校の情報科教育に対応した。現代的な情報リテラシーと,情報処理技術者試験レベルの学力を身につける決定版教科書。
1. コンピュータとはなにか
1.1 計算する機械とは
1.1.1 コンピュータは広く使われている
1.1.2 最初期のコンピュータ
1.2 コンピュータの原理を考える
1.2.1 デジタルとアナログ
1.2.2 メモリをもつ機械
1.2.3 計算の手順を実行できる機械
1.3 プログラム内蔵式コンピュータ
1.3.1 プログラム内蔵式という発明
1.3.2 コンピュータのプログラム
1.4 コンピュータの歴史を概観する
1.4.1 初期のコンピュータ
1.4.2 大型コンピュータをめざした時代
1.4.3 小型コンピュータのネットワークをめざした時代
1.4.4 多様な発展の時代へ
1.5 コンピュータを使いこなすために
1.5.1 コンピュータと情報リテラシー
1.5.2 コンピュータと周辺装置
2. デジタル情報の世界
2.1 なぜデジタル情報が使われるのか
2.1.1 デジタル情報は精度が高い
2.1.2 デジタル情報は信頼性がきわめて高い
2.1.3 デジタル情報は統一的に扱える
2.1.4 高度なデジタル処理を行える
2.1.5 デジタルは低コストかつコンパクトである
2.2 デジタルデータの表現
2.2.1 2進法の数値
2.2.2 小数点数の表現
2.2.3 文字コード
2.3 情報量と情報圧縮
2.3.1 シャノンの情報理論
2.3.2 デジタルデータの圧縮
2.3.3 アナログからデジタルへの変換
2.3.4 画像や音響情報の圧縮
2.4 デジタル表現で信頼性を向上させる
2.4.1 デジタルデータの誤り検出
2.4.2 デジタルデータの誤り訂正
3. コンピュータと情報通信
3.1 発達する情報通信ネットワーク
3.1.1 なぜ情報通信なのか
3.1.2 情報通信基盤
3.1.3 デジタル通信の効率性
3.2 データ通信とプロトコル
3.2.1 データ通信の技術
3.2.2 プロトコル
3.3 コンピュータネットワーク
3.3.1 ネットワークトポロジー
3.3.2 LANの技術
3.3.3 ネットワークの相互接続
3.4 インターネット
3.4.1 インターネットとTCP・IP
3.4.2 IPというプロトコル
3.4.3 TCPとUDP
3.4.4 TCP・IP上の各種プロトコル
3.5 ワールドワイドウェブ(WWW)
3.5.1 Webとブラウザ
3.5.2 Webページ記述言語HTML
3.5.3 Web検索
4. プログラムを作る
4.1 機械語のプログラム
4.1.1 命令セットと機械語
4.1.2 アセンブラ言語
4.1.3 マイクロプログラムとファームウェア
4.2 高級言語
4.2.1 高級言語のプログラミング
4.2.2 高級言語のいろいろ
4.2.3 高級言語の実行
4.3 プログラムの作り方
4.3.1 プログラミングに慣れる早道
4.3.2 バグとデバッグ
4.4 プログラミングのテクニック
4.4.1 方程式を解く方法-数値解析
4.4.2 データ構造
4.4.3 サブルーチン
4.5 新しいプログラム言語
4.5.1 オブジェクト指向言語
4.5.2 イベント駆動とビジュアルプログラミング
4.5.3 スクリプト言語とCGI
5. アルゴリズムを工夫する
5.1 アルゴリズムという概念
5.1.1 アルゴリズムとはなにか
5.1.2 アルゴリズムの設計で考慮すべきこと
5.1.3 数式を工夫する例
5.2 高速のアルゴリズムを考える
5.2.1 バブルソートのアルゴリズム
5.2.2 マージソートのアルゴリズム
5.2.3 マージソートの高速性
5.3 計算量とさまざまなアルゴリズム
5.3.1 計算量のオーダ
5.3.2 高速フーリエ変換
5.3.3 動的計画法
5.4 アルゴリズムとコンピュータの限界
5.4.1 コンピュータの性能とアルゴリズム
5.4.2 計算量が非常に多い問題
5.4.3 NP完全性
6. ハードウェア設計の基礎
6.1 論理代数と論理回路
6.1.1 論理代数
6.1.2 論理代数の性質
6.2 トランジスタと論理回路
6.2.1 トランジスタの動作原理
6.2.2 トランジスタ論理回路
6.3 組み合わせ回路の設計
6.3.1 組み合わせ回路の実現法
6.3.2 組み合わせ回路の簡単化
6.3.3 加算回路の設計
6.4 メモリ回路と順序回路
6.4.1 メモリ回路
6.4.2 フリップフロップ
6.4.3 順序回路
6.5 コンピュータのハードウェア
6.5.1 CPUの内部回路
6.5.2 スーパーコンピュータ
7. システムとしてのコンピュータ
7.1 コンピュータのシステム設計
7.1.1 バスとインタフェース
7.1.2 割り込みという機能
7.1.3 記憶の階層(1)-キャッシュメモリ
7.1.4 記憶の階層(2)-仮想記憶
7.2 オペレーティングシステム
7.2.1 オペレーティングシステムとはなにか
7.2.2 オペレーティングシステムの役割
7.2.3 オペレーティングシステムの構造
7.2.4 オペレーティングシステムの管理機能
7.3 並行処理
7.3.1 並行処理によるプログラムの実行
7.3.2 マルチプログラミングとマルチタスク
7.3.3 スケジューリングと相互排除
7.4 大型コンピュータシステム
8. さまざまな情報処理
8.1 データベースと情報検索
8.1.1 大量のデジタルデータ
8.1.2 データベースとはなにか
8.1.3 データ探索のアルゴリズム
8.1.4 データモデル
8.1.5 データベース言語と応用
8.2 コンパイラ
8.2.1 コンパイラの仕組み
8.2.2 逆ポーランド記法とスタック
8.2.3 コンパイルとプログラムの実行
8.3 コンピュータグラフィックスとシミュレーション
8.3.1 コンピュータグラフィックス
8.3.2 シミュレーション技術
9. 知的情報処理
9.1 人工知能
9.1.1 問題解決とゲームの対戦
9.1.2 木構造と自然言語処理
9.1.3 木探索法
9.1.4 知識表現
9.1.5 人工知能の多様な展開
9.2 学習・進化する機械
9.2.1 ニューラルネットワーク
9.2.2 遺伝的アルゴリズム
9.3 パターン情報処理
9.3.1 画像処理
9.3.2 パターン認識
9.3.3 コンピュータビジョン
10. コンピュータ科学の諸課題
10.1 複雑さの壁
10.1.1 複雑さの壁への挑戦
10.1.2 ソフトウェア工学
10.1.3 複雑系の科学
10.2 計算のパラドックス
10.2.1 チューリング機械と停止問題
10.2.2 論理とパラドックス
10.2.3 ゲーム理論におけるパラドックス
10.3 複雑さに挑戦する技術
10.3.1 非ノイマン型コンピュータ
10.3.2 暗号と情報セキュリティ
10.4 人間社会とコンピュータ
10.4.1 安全な情報社会
10.4.2 より人間的な社会をめざして