新書推薦:
《
夏天,19岁的肖像(青鲤文库)岛田庄司两次入围日本通俗文学奖直木奖的作品 ,同名电影由黄子韬主演!
》
售價:NT$
225.0
《
图解机械工程入门
》
售價:NT$
440.0
《
股市长线法宝(第6版)
》
售價:NT$
640.0
《
中文版SOLIDWORKS 2024机械设计从入门到精通(实战案例版)
》
售價:NT$
450.0
《
纯数学教程
》
售價:NT$
390.0
《
威尔士史:历史与身份的演进
》
售價:NT$
490.0
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:NT$
395.0
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:NT$
340.0
編輯推薦:
本书是由Eric S. Roberts新编写的一本教材,面向没有编程经验及相关基础知识的学生,旨在通过JavaScript教授学生理解编程的基本概念。本书借鉴了许多教师的教学经验,比如Richard Pattis采用的Karel机器人沉浸式教学法、Douglas Crockford推荐的编程指南,并采用富有逻辑的、循序渐进的组织方式,向学生展示学习其他编码语言或从事计算机编程工作所需的基本技能。通过阅读本书,学生能提高自己的编程技能,并开发出在线的、交互式的Web应用程序这些应用程序能真正在Web浏览器上运行,提供让人满意的即时反馈。本书还在每章的开头都介绍了一位为计算机科学的发展做出杰出贡献的人物,而且每章都有配套的用于学生自测的复习题和用于教师测验的练习题,并在本书配套的网站提供教学资源支持。
內容簡介:
本书通过使用一门叫JavaScript的语言,教会你如何编写程序,引导你走上奇妙的计算机科学的旅程。JavaScript语言是基于Web的应用程序的核心语言。书中所有示例代码都可以在任何浏览器上运行,包括你手机上的浏览器。虽然本书是使用JavaScript来演示,然而,更重要的是,本书着重讲解的是编程基本原则,其中的道理可以用在任何其他语言中。本书旨在用于大学课程中的*门编程课。它覆盖了传统计算机科学首门课程(通常称为CS1)的所有内容。
目錄 :
译者序
写给学生的话
写给教师的话
致 谢
第1章 轻松入门 1
1.1 Karel介绍 2
1.1.1 Karel的编程 2
1.1.2 Karel的世界 3
1.1.3 Karel的内置函数 3
1.2 教Karel解决问题 4
1.2.1 开始起步 4
1.2.2 定义函数 5
1.2.3 完善程序 6
1.2.4 使用库函数 7
1.2.5 分解策略 7
1.3 控制语句 9
1.3.1 条件语句 9
1.3.2 循环语句 11
1.3.3 解决通用问题 13
1.4 逐步求精法 15
1.4.1 一个逐步求精法的练习 15
1.4.2 自上而下设计的原则 15
1.4.3 求精第一个子问题 16
1.4.4 编写下一层代码 17
1.4.5 完成 18
1.5 Karel世界里的算法 19
总结 20
复习题 22
练习题 22
第2章 JavaScript简介 34
2.1 数据和类型 35
2.2 数值数据 35
2.2.1 JavaScript中数字的表示 36
2.2.2 算术表达式 36
2.2.3 优先级 38
2.3 变量 38
2.3.1 变量声明 39
2.3.2 赋值 39
2.3.3 自增和自减操作符 40
2.3.4 命名约定 41
2.3.5 常量 41
2.3.6 顺序计算 42
2.4 函数 42
2.4.1 用JavaScript实现函数 43
2.4.2 库函数 45
2.5 字符串数据 46
2.5.1 字符串操作 47
2.5.2 编写简单的字符串函数 48
2.6 在浏览器中运行JavaScript 49
2.6.1 Hello World程序 49
2.6.2 JavaScript和Web 51
2.6.3 JavaScript程序的HTML模板 51
2.7 测试和调试 53
2.7.1 防御式编程 54
2.7.2 成为一名优秀的调试者 54
2.7.3 编程的各个阶段 54
2.7.4 心理障碍的一个例子 57
2.7.5 编写有效的测试程序 58
2.8 软件维护 60
总结 61
复习题 63
练习题 65
第3章 控制语句 68
3.1 布尔数据 69
3.1.1 关系操作符 69
3.1.2 逻辑操作符 70
3.1.3 短路求值 72
3.2 if语句 73
3.2.1 if语句的其他形式 74
3.2.2 ?:操作符 75
3.3 switch语句 76
3.4 while语句 78
3.5 for语句 81
3.5.1 for和while的关系 84
3.5.2 嵌套的for语句 84
3.6 算法编程 86
3.6.1 早期的平方根算法 87
3.6.2 寻找最大的公约数 89
3.6.3 欧几里得算法 90
3.7 避免使用模糊的真假值 92
总结 93
复习题 94
练习题 95
第4章 简单图形 100
4.1 图形版Hello World 101
4.2 类、对象和方法 102
4.2.1 创建对象 102
4.2.2 向对象发送消息 103
4.2.3 引用 104
4.2.4 封装 105
4.3 图形对象 105
4.3.1 GRect类 105
4.3.2 GOval类 108
4.3.3 GLine类 109
4.3.4 GLabel类 109
4.4 图形窗口 114
4.5 创建图形化应用程序 115
4.5.1 指定坐标和大小 115
4.5.2 使用简单的分解策略 117
4.5.3 在图形应用程序中使用控制语句 119
4.5.4 返回图形对象的函数 121
总结 122
复习题 123
练习题 124
第5章 函数 132
5.1 快速回顾函数 133
5.1.1 函数定义的语法 133
5.1.2 传递参数 134
5.1.3 可选参数 134
5.1.4 谓词函数 135
5.2 程序库 136
5.2.1 创建自己的程序库 136
5.2.2 信息隐藏原则 137
5.2.3 接口概念 138
5.3 一个支持随机选择的程序库 138
5.3.1 设计RandomLib.js库的接口 139
5.3.2 实现RandomLib.js库 140
5.3.3 使用RandomLib.js库 142
5.4 函数调用的机制 144
5.4.1 调用函数的步骤 144
5.4.2 组合函数 145
5.4.3 跟踪组合函数 146
5.5 递归函数 149
5.5.1 fact的递归公式 149
5.5.2?跟踪递归过程 150
5.5.3 递归的信仰之跃 153
5.5.4 斐波那契函数 153
5.5.5 计算斐波那契序列中的项 154
5.5.6 在递归实现中获得信心 155
5.5.7 递归实现的效率 155
总结 158
复习题 159
练习题 160
第6章 编写交互式程序 164
6.1 一等函数 165
6.1.1 将函数声明为数据值 165
6.1.2 传递函数作为参数 166
6.2 一个简单的交互式示例 167
6.3 控制对象的属性 169
6.4 响应鼠标事件 170
6.4.1 简单的画线程序 171
6.4.2 在画布上拖动对象 173
6.5 基于计时器的动画 175
6.5.1 setTimeout和setInterval函数 175
6.5.2 动画的简单示例 176
6.5.3 跟踪动画的状态 177
6.6 扩展图形库 179
6.6.1 GArc类 179
6.6.2 GPolygon类 181
6.6.3 GCompound类