第1章 计算机基础 1
1.1 什么是计算机 2
1.2 硬件 3
1.2.1 中央处理器(CPU) 4
1.2.2 存储器 6
1.2.3 输入/输出设备(I/O) 8
1.3 软件 9
1.4 因特网和万维网 12
1.4.1 Web浏览器和服务器 14
1.4.2 Web地址 14
1.4.3 访问本地网页 15
1.5 展望未来 15
本章小结 16
复习题 17
参考文献 18
第2章 HTML和网页 19
2.1 HTML基础知识 20
2.1.1 HTML标记 20
2.1.2 HTML元素 21
2.2 文档格式化 22
2.2.1 文本间距 22
2.2.2 标题和对齐 23
2.2.3 字体格式化 25
2.3 超文本和多媒体 26
2.3.1 超链接 26
2.3.2 图像 27
2.4 列表 29
2.5 表格 32
2.5.1 表格边框 33
2.5.2 表格对齐 33
2.6 使网页可以公开访问 35
2.7 展望未来 35
本章小结 36
补充材料和练习 37
HTML标准 37
浏览器设置 38
背景色和图像 38
图像链接和视频 39
层叠样式表 40
第3章 因特网和万维网 41
3.1 因特网的历史 42
3.1.1 阿帕网(ARPAnet) 42
3.1.2 发展和私有化 43
3.2 因特网的工作原理 45
3.2.1 分布式网络 46
3.2.2 包交换技术 46
3.2.3 因特网协议:TCP/IP 47
3.2.4 域名 48
3.3 万维网的历史 49
3.3.1 超文本和万维网 50
3.3.2 万维网的大规模采纳 50
3.3.3 万维网的发展 52
3.4 万维网的工作原理 52
3.4.1 HTML 52
3.4.2 万维网协议:HTTP 53
3.4.3 缓存技术 53
3.5 展望未来 54
本章小结 54
复习题 55
章后注 57
参考文献 57
第4章 JavaScript和动态网页 59
4.1 动态网页 59
4.1.1 HTML事件处理器 60
4.1.2 onclick事件处理器 63
4.2 和按钮交互 63
4.3 网页中的动态文本 66
4.3.1 警告窗口 66
4.3.2 innerHTML属性 67
4.3.3 示例:名人名言页 70
4.4 展望未来 71
本章小结 72
补充材料和练习 73
更改图片边框 73
相对大小 73
更改元素颜色 74
嵌套引号 75
第5章 JavaScript和用户交互 77
5.1 使用文本框进行输入/输出 77
5.1.1 文本框元素 78
5.1.2 套用信函网页 79
5.2 JavaScript变量 81
5.2.1 用变量实现值的重用 82
5.2.2 示例:故事填空 83
5.3.3 供临时值使用的变量 84
5.3 会计算的网页 85
5.3.1 JavaScript数字和表达式 86
5.3.2 数字的表示 87
5.3.3 文本框和parseFloat 88
5.3.4 成绩计算 90
5.4 编程错误和调试 91
5.5 展望未来 92
本章小结 92
补充材料和练习 93
用表格对齐元素 93
巩固表达式和赋值 94
深入混合表达式 95
用于输出的文本框 95
第6章 计算机的历史 97
6.1 第0代:机械计算机(1642—1945) 98
6.1.1 可编程设备 99
6.1.2 电磁式继电器 101
6.2 第1代:电子管(1945—1954) 102
6.2.1 计算机和第二次世界大战 103
6.2.2 冯·诺依曼体系结构 104
6.3 第2代:晶体管(1954—1963) 105
6.4 第3代:集成电路(1963—1973) 106
6.4.1 大规模集成电路 108
6.4.2 商用计算 109
6.5 第4代:VLSL(1973—1985) 109
6.5.1 个人计算机革命 110
6.5.2 面向对象编程 111
6.6 第5代:并行处理和网络(1985—????) 111
6.7 展望未来 112
本章小结 113
复习题 114
章后注 115
参考文献 116
第7章 函数和随机性 117
7.1 预定义JavaScript 函数 117
7.1.1 数学函数 118
7.1.2 乘幂 120
7.1.3 生成随机数 121
7.2 简单的用户自定义函数 123
7.3 网页中的随机性 126
7.3.1 示例:模拟掷骰子 126
7.3.2 示例:随机幻灯片放映 127
7.3.3 示例:随机横幅广告 128
7.4 展望未来 129
本章小结 130
补充材料和练习 131
用函数修改网页 131
关于数学函数的更多研究 131
ONLOAD和ONUNLOAD属性 132
第8章 算法和编程语言 133
8.1 算法 134
8.2 设计和分析算法 135
8.2.1 替代算法 136
8.2.2 算法分析 137
8.2.3 大O表示法 138
8.3 算法实例:搜索列表 139
8.3.1 顺序搜索 139
8.3.2 二分搜索 140
8.3.3 算法分析 141
8.4 算法实例:近似平方根 141
8.5 算法和编程 143
8.5.1 机器语言 143
8.5.2 高级语言 144
8.5.3 程序翻译 145
8.5.4 解释器和和编译器 147
8.6 展望未来 148
本章小结 148
复习题 149
参考文献 150
第9章 抽象和库 153
9.1 函数的结构 154
9.2 带有输入的函数 156
9.3 返回值的函数 159
9.4 random.js库 162
9.5 展望未来 164
本章小结 165
补充材料和练习 166
更多用户自定义函数 166
巩固random.js 167
time.js库 168
第11章 作为一门学科的计算机科学 171
10.1 计算机“科学” 172
10.2 计算机科学的主题 173
10.2.1 硬件 174
10.2.2 软件 174
10.2.3 理论 175
10.3 计算机科学的分支 176
10.3.1 算法和数据结构 177
10.3.2 计算机的体系结构 178
10.3.3 操作系统和网络 180
10.3.4 软件工程 182
10.3.5 人工智能和机器人技术 183
10.3.6 生物信息学 184
10.4 计算机科学道德标准 185
展望未来 187
本章小结 187
复习题 188
章后注 189
参考文献 190
第11章 条件执行 191
11.1 if语句 191
11.2 嵌套if语句 195
11.3 示例:掷骰子 197
11.3.1 计数器 197
11.3.2 布尔表达式 200
11.4 示例:老虎机 201
11.5 展望未来 204
本章小结 204
补充材料和练习 205
关于嵌套if语句的更多练习 205
极端天气 207
示例:设计ESP测试 208
示例:设计圆点赛跑 209
第12章 数据的表示 211
12.1 模拟与数字 212
12.2 二进制数 213
12.3 表示整数 214
12.4 表示实数 216
12.5 表示字符和字符串 217
12.6 表示其他类型的数据 219
12.6.1 声音 219
12.6.2 图像 221
12.6.3 电影 223
12.7 计算机怎样区别不同的数据类型 224
12.8 展望未来 225
本章小结 226
复习题 227
参考文献 228
第13章 条件重复 229
13.1 while循环 229
13.1.1 避免冗余 231
13.1.2 示例:彩票组合 233
13.2 计数器驱动的循环 235
13.3 变量和重复 238
13.4 示例:生成hailstone序列 240
13.5 展望未来 242
本章小结 242
补充材料和练习 243
循环的更多练习 243
更多掷骰子的例子 244
for循环 246
第14章 深入计算机——冯·诺依曼体系结构 249
14.1 CPU子单元和数据通道 249
14.1.1 CPU子单元 250
14.1.2 CPU数据通道指令周期 250
14.1.3 数据通道模拟器 251
14.2 CPU和主存储器 253
14.2.1 与主存储器来回传输数据 253
14.2.2 模拟了存储器的数据通道 254
14.3 存储程序的计算机 256
14.3.1 机器语言 257
14.3.2 控制器 258
14.3.3 存储程序的计算机模拟器 259
14.3.4 输入/输出设备的作用 263
14.4 机器语言和汇编语言 264
14.5 展望未来 265
本章小结 266
复习题 267
参考文献 268
第15章 JavaScript字符串 269
15.1 字符串对象 269
15.2 通用的字符串操作方法 272
15.3 查找字符串 274
15.4 字符串操作和循环 276
15.5 示例:置换密码 278
15.5.1 编码消息 279
15.5.2 解码消息 282
15.6 展望未来 282
本章小结 283
补充材料和练习 283
关于字符串的更多练习 283
示例:置换电话号码 284
罗马数字 285
示例:旋转密码 285
Math对象和文档对象 286
第16章 深入计算机——晶体管和集成电路 289
16.1 电和开关 290
16.1.1 电学基础 290
16.1.2 开关 290
16.1.3 晶体管 291
16.1.4 晶体管开关 292
16.2 从晶体管到门电路 293
16.3 从门电路到复杂电路 295
16.4 从电路到微型芯片 299
16.4.1 集成电路 299
16.4.2 集成电路的制造 299
16.4.3 微型芯片的封装 301
16.5 展望未来 302
本章小结 302
复习题 304
参考文献 305
第17章 JavaScript数组 307
17.1 数组对象 308
17.1.1 访问数组元素 308
17.1.2 为一个数组内的元素赋值 309
17.2 从字符串到数组 311
17.2.1 字符串的split方法 311
17.2.2 示例:生成首字母缩略词 312
17.3 数字数组 314
17.3.1 示例:维护掷骰子统计数据(方法1) 317
17.3.2 示例:维护掷骰子统计数据(方法2) 318
17.4 ASCII动画 320
17.5 展望未来 322
本章小结 323
补充材料和练习 323
关于数组的更多练习 323
查找数组 324
平行和嵌套数组 327
第18章 计算机和社会 331
18.1 技术的正面影响 331
18.1.1 日常事务中的计算机和程序 332
18.1.2 Internet和Web作为信息源 334
18.1.3 因特网和Web作为传播媒介 336
18.1.4 Internet和Web用于商业 337
18.2 技术的潜在危险 338
18.2.1 对复杂系统的依赖 338
18.2.2 信息过量 339
18.2.3 隐私与安全 340
18.2.4 数字鸿沟 342
18.3 展望未来 343
本章小结 343
复习题 344
章后注 345
参考文献 346
附录A 浏览器基础 347
附录B 常用文本编辑器 355
附录C HTML参考 361
附录D JavaScript参考 364
附录E random.js函数库 370
附录F time.js函数库 371
附录G arrays.js函数库 373