プログラミングの基礎 †
プログラミングの基礎 (Computer Science Library) 浅井 健一 サイエンス社 2007-03-01 ¥ 2484 |
目次 †
No. | 章 | 節 |
1 | 第1章 はじめに | 1.1 デザインレシピ |
2 | 1.2 使用する言語 | |
3 | 1.3 準備 | |
4 | 1.4 参考となる資料 | |
5 | 第2章 基本的なデータ | 2.1 整数 |
6 | 2.2 実数 | |
7 | 2.3 文字列 | |
8 | 2.4 真偽値 | |
9 | 2.5 そのほかのデータ | |
10 | 第3章 変数の定義 | 3.1 変数の必要性 |
11 | 3.2 変数定義の構文 | |
12 | 3.3 変数の実行方法 | |
13 | 3.4 ほかの言語の変数との違い | |
14 | 第4章 関数の定義 | 4.1 関数定義の必要性 |
15 | 4.2 関数定義の構文 | |
16 | 4.3 関数の型 | |
17 | 4.4 型推論と型チェック? | |
18 | 4.5 関数の実行方法? | |
19 | 4.6 関数定義に対するデザインレシピ? | |
20 | 第5章 条件分岐 | 5.1 条件分岐の必要性? |
21 | 5.2 条件分岐の構文? | |
22 | 5.3 kyuyoの例? | |
23 | 5.4 式としてのif文? | |
24 | 5.5 条件分岐に対するデザインレシピ? | |
25 | 5.6 真偽値を返す関数? | |
26 | 5.7 条件分岐の実行方法? | |
27 | 第6章 さまざまなエラー | 6.1 構文エラー? |
28 | 6.2 未定義の変数? | |
29 | 6.3 型エラー? | |
30 | 6.4 実行時のエラー? | |
31 | 6.5 論理的なエラー? | |
32 | 第7章 組とパターンマッチ | 7.1 組の構文? |
33 | 7.2 パターンマッチ? | |
34 | 7.3 構造データに対するデザインレシピ? | |
35 | 7.4 パターンマッチの実行方法? | |
36 | 第8章 レコード | 8.1 レコードの必要性? |
37 | 8.2 レコードの構文? | |
38 | 8.3 レコードとパターンマッチ? | |
39 | 8.4 そのほかの記法? | |
40 | 8.5 ユーザによる型定義? | |
41 | 8.6 データ定義に対するデザインレシピ? | |
42 | 8.7 駅名と駅間の情報の定義? | |
43 | 第9章 リスト | 9.1 リストの構造? |
44 | 9.2 リストの構文と型? | |
45 | 9.3 リストとパターンマッチ? | |
46 | 9.4 再帰関数? | |
47 | 9.5 再帰関数に対するデザインレシピ? | |
48 | 9.6 テンプレートの複合? | |
49 | 9.7 駅名リストと駅間リストの整備? | |
50 | 第10章 再帰関数を使ったプログラミング | 10.1 関数のネスト? |
51 | 10.2 リストの中の最小値を求める関数? | |
52 | 10.3 局所変数定義? | |
53 | 10.4 パターンマッチつき局所変数定義? | |
54 | 10.5 ふたつのリストを結合する関数? | |
55 | 10.6 ふたつの昇順に並んだリストをマージする関数? | |
56 | 10.7 駅名・駅間リストからの情報の取得? | |
57 | 第11章 自然数と再帰 | 11.1 自然数の構造? |
58 | 11.2 自然数に基づいた再帰関数? | |
59 | 11.3 ベキ乗を求める関数? | |
60 | 11.4 リスト上の再帰との違い? | |
61 | 第12章 ダイクストラのアルゴリズム | 12.1 グラフ上の最短路問題? |
63 | 12.2 ダイクストラのアルゴリズム? | |
64 | 12.3 アルゴリズムの正当性? | |
65 | 12.4 プログラムにおける頂点と辺の定義? | |
66 | 12.5 駅名の重複の除去? | |
67 | 第13章 一般化と高階関数 | 13.1 データの一般化? |
68 | 13.2 関数の一般化とmap? | |
69 | 13.3 多相型と多相関数? | |
70 | 13.4 値としての関数? | |
71 | 13.5 関数を返す関数? | |
72 | 13.6 確定点に隣接する点の最短距離の更新? | |
73 | 第14章 高階関数を使ったリスト処理 | 14.1 条件を満たす要素を取り出す関数? |
74 | 14.2 各要素をまとめあげる関数? | |
75 | 14.3 局所関数定義? | |
76 | 14.4 名前のない関数? | |
77 | 14.5 infix関数とprefix関数? | |
78 | 14.6 完全数を求める関数? | |
79 | 第15章 新しい形の再帰 | 15.1 再帰関数の構造? |
80 | 15.2 部分問題の生成? | |
81 | 15.3 補助関数の作成? | |
82 | 15.4 停止性の判定? | |
83 | 15.5 一般の再帰に対するデザインレシピ? | |
84 | 15.6 最短距離最小の点の分離? | |
85 | 15.7 例の作成とデバッグについて? | |
86 | 第16章 情報の蓄積 | 16.1 情報の欠落? |
87 | 16.2 アキュムレータ? | |
88 | 16.3 アキュムレータの活用? | |
89 | 16.4 最初の完動プログラム? | |
90 | 16.5 プログラム作成のプロセス? | |
91 | 第17章 再帰的なデータ構造 | 17.1 バリアント型? |
92 | 17.2 木? | |
93 | 17.3 再帰的なデータ構造に対するデザインレシピ? | |
94 | 17.4 2分探索木? | |
95 | 17.5 多相型の宣言? | |
96 | 17.6 停止性? | |
97 | 17.7 get_ekikan_kyoriの高速化? | |
98 | 17.8 全通りを尽くしていない場合の対処? | |
99 | 第18章 例外と例外処理 | 18.1 オプション型? |
100 | 18.2 オプション型を使った例外処理? | |
101 | 18.3 オプション型を使った例外処理の問題点? | |
102 | 18.4 例外処理専用の構文? | |
103 | 18.5 例外処理の実際? | |
104 | 18.6 例外処理を使ったプログラミング? | |
105 | 18.7 最短路問題における例外処理? | |
106 | 第19章 モジュール | 19.1 モジュールの構文? |
107 | 19.2 2分探索木のモジュール? | |
108 | 19.3 モジュールインタフェース:シグネチャ? | |
109 | 19.4 抽象データ型? | |
110 | 19.5 そのほかのシグネチャの宣言法? | |
111 | 19.6 ファイルの分割と分割コンパイル? | |
112 | 19.7 2分探索木モジュールの使用? | |
113 | 第20章 モジュールの開発 | 20.1 赤黒木? |
114 | 20.2 赤黒木への挿入? | |
115 | 20.3 赤黒木の再構成? | |
116 | 20.4 「または」のパターン? | |
117 | 20.5 赤黒木のモジュール化? | |
118 | 20.6 open文? | |
119 | 第21章 逐次実行 | 21.1 副作用を持つ関数? |
120 | 21.2 unit型? | |
121 | 21.3 逐次実行の構文? | |
122 | 21.4 実行中の変数の表示? | |
123 | 21.5 実行の順序? | |
124 | 21.6 スタンドアローンのプログラム? | |
125 | 21.7 引数の渡し方? | |
126 | 第22章 値の書き換えと参照透過性 | 22.1 参照透過性? |
127 | 22.2 呼び出し回数のカウント? | |
128 | 22.3 参照型と値の書き換え? | |
129 | 22.4 参照透過性の喪失? | |
130 | 22.5 変更可能なレコード? | |
131 | 22.6 配列? | |
132 | 22.7 配列の変更? | |
133 | 第23章 副作用命令を使ったプログラミング | 23.1 ダイクストラ法におけるデータアクセス? |
134 | 23.2 ヒープ? | |
135 | 23.3 ヒープへの挿入? | |
136 | 23.4 そのほかの操作? | |
137 | 23.5 ヒープのインタフェース? | |
138 | 23.6 副作用命令の影響について? | |
139 | 23.7 ヒープ実装の概要? | |
140 | 第24章 まとめ―プログラミングとは― | 24.1 OCamlを習得して? |
141 | 24.2 この先の道? |
出版社 †
- 「プログラミングの基礎」 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1160-1
リンク †
- お茶の水女子大学 理学部情報科学科 准教授 浅井健一さんインタビュー | IT系のインターンシップならエンジニアインターン
https://engineer-intern.jp/archives/11524 - 「プログラミングの基礎」
http://pllab.is.ocha.ac.jp/~asai/book/Top.html - 「プログラミングの基礎」を使った授業紹介
http://pllab.is.ocha.ac.jp/~asai/book-mov/ - 浅井健一『プログラミングの基礎』の読書を捗らせるためのツール作りました - akimachoのはてなブログ
http://akimacho.hatenablog.com/entry/2015/03/05/122858 - デザインレシピ入力ページ
http://akimacho.github.io/design_recipe/