计算机科学导论:基于机器人的实践方法
作者 : 陈以农 主编 陈文智 副主编
出版日期 : 2013-08-13
ISBN : 978-7-111-43588-4
适用人群 : 大学一年级第一学期学生使用
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 196
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

这是一本基于机器人的实验教学教材。传教材包含的内容:
? 计算机的未来就业方向
? 数据与存储
? 二进制系统
? 数据操作与计算机组成
? 操作系统:从DOS到WebOS
? 有限状态机:走出迷宫的算法
? 算法:机器人算法
? 计算理论图灵机
? 编程语言与范例:
? 从面相对象到面相服务
? 面相服务的软件开发和云计算

图书特色

计算机科学导论
基于机器人的实践方法
陈以农 主编 
陈文智 副主编
与一般讲解原理的课程不太一样,基于机器人的计算机科学导论课程分为原理和实验两部分。这样学生在学完一个原理之后,就要动手实践这个原理。该课程的实验部分主要基于微软的机器人开发环境MRDS、VPL可视化编程语言以及乐高机器人。学生通过团队合作完成实验内容。该课程还有一个配套的课程设计项目,学生要和参与实际工程项目一样,通过自己组织团队、开会、撰写PPT、对问题进行定义和研究,然后再通过设计、模拟、实验、测试完成整个课程设计。课程设计最终通过机器人比赛的方式进行验收,大大提高了学生参与的积极性。目前这门课程已经成为多所国际著名大学的学术互认课程,并获得了教育部与Intel的认可和支持,被列入了教育部新课程大纲。
本书特色:
● 内容丰富有趣,从具体到抽象,简单易学,却具有挑战。
● 以培养学生的兴趣为主导,培养问题解决能力为目标。
● 以理论为基础,系统化为规范,实际问题为对象。
● 每周一章,从问题到答案,概念清晰,实验步骤详尽。
● 以系统化的工程项目开发过程为指导,以人性化团队合作为框架解决每一个工程问题。
● 机器人竞赛与最终课程设计项目纵贯全程,使每周实验前后呼应。
● 以最新图形化编程语言为工具,App开发简单而实用。
● 涵盖大量App实例,从机器人App到手机App和Web App。
● 教辅资源丰富,包含讲义、测验、习题答案、代码等。
作者简介:
陈以农(Yinong Chen),1993年获德国卡尔斯鲁厄理工学院(KIT)博士。之后就职于法国科学院和南非金山大学。2001加入美国亚利桑那州立大学,现任高级讲师。在服务计算、云计算、物联网和机器人等领域发表了上百篇学术论文。领导开发了多款教育机器人并首先实现了在云计算环境中的机器人即服务(Robot as a Service)和教育创新机器人eRobotic。陈以农博士更致力于计算机教育学和教学方法论的研究,开发多门新课并出版了多本中英文教材,包括《面向服务的计算和Web数据管理》,《浅谈深析面向服务的软件工程》、《Service-Oriented Computing and Web Software Integration》。

陈文智,浙江大学计算机学院教授,博士生导师。主要研究方向:计算机体系结构、计算机系统级软件、嵌入式系统及应用、计算机网络和安全。主持国家级科技项目10多项,发表学术论文数十篇,获得国家发明专利授权10多项,获得软件著作权20多项。获得浙江省科技进步一等奖1项。主讲多门本科生、研究生和博士生骨干课程的主讲老师,承担国家级精品课程、省部级精品课程多门,出版国家级规划教材或重点教材多部,主持国家级省部级教学改革项目多项。

图书前言

计算机工业一直引导世界工业的发展,也是其他行业的动力源。计算机科学和计算机工程专业是计算机工业以及相关产业发展的源泉,也一直是全世界最有价值的专业之一。然而,2000年的网络泡沫使计算机工业受到重创,也使计算机科学及相关专业的学位价值第一次受到质疑。计算机科学和计算机工程专业的生源也第一次受到挑战,甚至出现了一场世界范围内的计算机科学生源危机。然而,2000年的网络泡沫的影响是短暂的。计算机工业很快恢复并创造出更高的价值。例如,亚马逊(amazon.com)的市值在2000年从其峰值107美元/股一度跌到7元/股。今天,亚马逊的市值已经远远超过2000年的107美元/股的峰值,并发展成为一家云计算服务的主要提供商。
  然而,计算机工业的恢复并没有消除计算机专业的生源危机。以亚利桑那州立大学(ASU)为例。2002年前,ASU每年有200名新生进入计算机科学专业。到2004年,就只有100名新生。美国其他大学的情况也与之类似。2008年,美国计算机协会(ACM)发布的计算机科学教学大纲报告(http://www.acm.org/ education/curricula/ComputerScience2008.pdf)正式定义2000年之后计算机科学进入生源危机,必须采取有效措施来解决这一危机。ACM在长达108页的报告中用了一整章来阐述这一危机的解决方案。
  ACM的报告指出,网络泡沫的影响只是致使计算机科学专业进入生源危机的导火索,致使计算机科学生源持续危机的真正原因是陈旧的教学方法和内容。计算机科学专业课程,特别是计算机入门课程的教学方法和内容必须使学生感兴趣,想挑战,还要能激发学生的创造性。ACM报告建议从三方面来改进教学方法和内容。
  第一,应用领域。计算机科学的教学内容必须更紧密地与应用相结合。第二,课程设置。计算机科学的教学必须增加学生感兴趣的课程,例如,游戏编程、多媒体计算、机器人、移动计算。第三,教学方法。教学必须生动有趣以激发学生的学习兴趣,听课必须与动手相结合,内容有挑战性但必须基于学生的接受能力,教学必须与就业机会相结合。
  在ACM大纲的指导下,很多大学开始在计算机的课程中增加学生感兴趣的内容。机器人的引入最为广泛。
  为什么基于机器人的计算机科学入门课程没有在10年、20年或30年前发生呢?有多方面的原因:
  第一,计算机科学专业的生源一直很好,计算机教育主要注重内容和系统化,没有太多考虑学生的兴趣。
  第二,机器人硬件价格高,无法用于大班课程。
  第三,机器人涉及硬件和软件,编程复杂,不宜作为入门课程的内容。
  近10年来,这几方面都发生了根本的变化。计算机科学专业的生源在2000年后受到挑战。机器人硬件价格大幅下降,特别是面向服务的软件技术和可视化编程技术使机器人的编程应用在大学一年级,甚至高中教学中成为可能。
  本教材的实验部分使用微软机器人开发工作室(Microsoft Robotics Developer Studio, MRDS)和可视化程序设计语言(Visual Programming Language,VPL)来编程和控制乐高NXT机器人。MRDS可在多种硬件平台上开发机器人应用程序。平台支持多种机器人,包括iRobot、Fischertechnik、LEGO Mindstorms NXT、Parallax robots和微软的仿真机器人等。为了在可视化环境中创建简单和易于使用的服务,MRDS使用面向服务技术作为其底层基础。应用这一技术,开发者可以绘制应用程序的流程图(规格)。开发环境中的编译工具能够把流程图直接转换成可执行的程序,从而使软件开发变得更容易、更快速。开发是一个简单的拖放过程。把代表服务的模块拖放到流程图的设计平面,然后用连线把它们连接起来。这个简单的过程可以使没有程序设计经验的人在几分钟内创建自己的机器人应用程序。经过一学期的学习和动手后,学生可以编出较为复杂的智能程序,使机器人能探索未知迷宫并走出迷宫。
  与一本面向原理的教材大不一样,这是一本介绍原理并实现原理的教材。学懂一个原理后,学生还必须把该原理应用到实践中。比如,当学懂了运算器的工作原理后,学生还必须用VPL编写一个运算器,并测试实现的运算器能否正确完成运算任务。当设计了一个迷宫漫游算法后,学生还必须把该算法编程到机器人中,测试机器人能否在迷宫中不迷路。
  所以,我们的教材不但必须保证原理的正确,还必须保证正确的原理能被学生在给定的时间内实现。为此,我们必须验证每一个实验和每一个练习的正确性和时间要求。编写这样的教材和讲授这样的课程,会花费更多的精力和时间,但是我们坚信这样的教材和这样的课程是学生想要学的,是学生能学透和记住的,这样才能培养出真正有知识和能力的学生。正是这样的教学理念,使我们走到一起,联手编写了本书。
  除封面署名的作者外参与编写工作的人员还包括:邢永康(重庆大学),岳厚光、薛英花(山东财经大学),以及施青松(浙江大学)。
  在此要感谢英特尔公司的朱文利、王靖淇、秦征、廖凯旋、赵宇、顾典、宋洪涛、Pranav Mehta和JoZell Johnson,亚利桑那州立大学的李雁航教授,清华大学的陶品教授,北京大学的吴中海教授,兰州大学的周国庆教授,武汉大学的杨剑锋教授和机械工业出版社华章分社的张国强编辑。他们在2012年首届Intel中美高等教育嵌入式课程研讨会上,提供了大量建设性意见,促成了本书的编写,并在之后的写作过程中,给予了我们极大的帮助和支持。

作者
2013年7月

上架指导

计算机科学及应用

封底文字

策划最后定

图书目录


作者简介
前言
教学建议
第1章  团队建设和职业发展机会 1
1.1  团队建设活动 1
1.1.1  合作模式 1
1.1.2  团队组建练习 1
1.2  计算机科学和工程的职业发展机会 1
1.2.1  相关的计算机课程体系 2
1.2.2  国内IT行业就业形势分析 2
1.2.3  国外计算机相关行业职位及就业形势分析 5
1.3  职业机会练习 7
1.3.1  工程方向的职业机会 7
1.3.2  软件工程方向的职业机会 8
1.3.3  计算机和数学领域的职业机会 8
1.3.4  美国最好的职业 8
第2章  机器人开发环境和VPL入门 9
2.1  预备知识 9
2.2  实验前测验 14
2.3  实验任务 16
2.3.1  显示“Hello World” 16
2.3.2  最喜爱的电影 18
2.3.3  字符串长度 20
2.3.4  使用Switch块求字符串长度的程序 22
2.3.5  创建一个While循环块 23
2.3.6  创建活动模块 26
2.3.7  Drive-By-Wire仿真 28
2.3.8  改进驾驶体验 30
第3章  计算机组成与逻辑设计 32
3.1  预备知识 32
3.2  实验前测验 37
3.3  实验任务 38
第4章  计算机系统和设计 42
4.1  预备知识 42
4.1.1  计算机系统分类 42
4.1.2  计算机的基本组成形式 43
4.1.3  计算机工作的基本原理 44
4.1.4  Intel通用计算机架构 45
4.1.5  多样的并行处理技术 47
4.1.6  Tick-Tock 48
4.1.7  CPU微架构 48
4.2  实验前测验 49
4.3  实验任务 50
4.3.1  构建2-1多路选择器 50
4.3.2  构建4-1多路选择器 53
4.3.3  构建一位ALU 54
4.3.4  测试一位ALU 55
4.3.5  使用Counter Service产生自动测试用例(选作题) 55
第5章  遥控机器人的设计和触摸传感器 56
5.1  预备知识 56
5.1.1  传感器和执行器 56
5.1.2  NXT智能块 57
5.1.3  蓝牙连接 58
5.1.4  VPL程序与机器人之间的对应关系 59
5.2  实验前测验 59
5.3  实验任务 60
5.3.1  组装机器人 60
5.3.2  建立机器人与计算机之间的通信 61
5.3.3  用Drive-By-Wire控制机器人 61
5.3.4  触摸传感器 63
5.3.5  协调触摸传感器和马达 64
第6章  机器人执行器的设计与构造 66
6.1  机器人设计项目的目标与任务 66
6.1.1  问题描述和需求 66
6.1.2  文档 67
6.1.3  任务 67
6.1.4  评测和打分 67
6.2  实验前测验 68
6.3  实验任务 69
6.3.1  从正式的会议规范开始 69
6.3.2  头脑风暴得出解决方案 69
6.3.3  决定行动方案 69
6.3.4  实现解决方案 69
6.3.5  对机器人的手臂编程 69
6.3.6  含执行器控制的Drive-By-Wire 71
6.3.7  测试和评价:用测试数据完成KTDA表 72
6.3.8  提交会议纪要 72
第7章  事件驱动编程与传感器的编程 73
7.1  预备知识 73
7.1.1  引言 73
7.1.2  事件驱动编程 73
7.1.3  传感器 75
7.1.4  相扑机器人的算法 76
7.1.5  穿越迷宫的算法 77
7.1.6  VPL代码分析和个案研究 78
7.2  实验前测验 79
7.3  实验任务:传感器的编程与相扑机器人 80
7.3.1  正式会议和会议纪要 80
7.3.2  使用触摸传感器来检测和躲避障碍物 80
7.3.3  使用光传感器来检测和躲避障碍物 81
7.3.4  使用光传感器实现基本相扑算法 82
7.3.5  使用光传感器和触摸传感器实现相扑算法 83
7.3.6  使用光传感器、触摸传感器和超声波传感器实现相扑算法 83
7.3.7  模拟的传感器和迷宫算法1:看侧前方的算法 83
7.3.8  模拟的传感器和迷宫算法2:使用模块化设计 85
7.3.9  在程序里增加触摸传感器(选做练习) 88
第8章  用有限状态机解决迷宫问题 90
8.1  预备知识 90
8.1.1  有限状态机 90
8.1.2  Right-Then-Left算法的实现 93
8.2  实验前测验 98
8.3  实验任务 98
8.3.1  在VPL中实现基本的自动售货机 98
8.3.2  在仿真的迷宫中实现一个仿真机器人 99
8.3.3  使用超声波传感器来检测和避开障碍物 99
8.3.4  从虚拟现实到物理环境 100
8.3.5  改进算法性能 101
8.3.6  作业提交的要求 102
第9章  优化自治迷宫算法 103
9.1  迷宫算法的评估 103
9.2  实验前测验 105
9.3  实验任务 106
9.3.1  讨论和会议纪要 106
9.3.2  使用2个距离值的自治编程 106
9.3.3  改进算法性能 106
9.3.4  使用距离传感器和触摸传感器实现沿墙走的算法 106
9.3.5  使用超声波传感器的相扑机器人 107
第10章  机器人现场测试和机器人比赛准备 108
10.1  准备工作 108
10.2  实验任务 108
10.2.1  讨论和会议纪要 108
10.2.2  寻宝比赛 108
10.2.3  迷宫导航比赛的实践 108
10.2.4  相扑机器人比赛的实践 108
10.2.5  完成会议纪要 109
10.2.6  使用游戏操作杆远程控制寻宝比赛 109
第11章  机器人比赛 114
11.1  寻宝 114
11.2  自治迷宫遍历 114
11.3  相扑机器人 115
11.4  其他类型的比赛和应用 115
第12章  Android手机App的开发 116
12.1  预备知识 116
12.2  实验前测验 117
12.3  Android手机编程与实验 118
12.3.1  Hello World 118
12.3.2  Magic 8 Ball 119
12.3.3  Paint Pic 120
12.3.4  摩尔泥游戏 120
12.3.5  股票报价 120
12.3.6  股票走势 120
12.3.7  记忆游戏 123
12.3.8  定义你的新App 123
第13章  Web应用的开发 124
13.1  预备知识 124
13.1.1  编程的基本概念 124
13.1.2  面向服务的架构的基本概念 128
13.1.3  编程环境Visual Studio 129
13.2  实验内容 131
13.2.1  开始使用Visual Studio开发环境和C# 131
13.2.2  创建你自己的Web浏览器 134
13.2.3  创建一个Web应用程序 135
13.2.4  创建一个在线自动售货机 139
13.2.5  使用加密/解密服务建立一个安全应用程序 142
第14章  移动计算 146
14.1  预备知识 146
14.2  Windows手机编程与实验 147
14.2.1  练习:创建一个Windows Phone Application项目 147
14.2.2  设计用户界面 149
14.2.3  单步调试执行 151
14.2.4  手机旋转 152
14.2.5  手机动画程序 153
14.2.6  MainPage.xaml的代码 157
14.2.7  Windows Phone猜数游戏 159
14.2.8  面向服务的计算和Windows Phone应用 159
第15章  演讲文稿设计 164
15.1  实验前的准备 164
15.1.1  组织演讲稿的技术内容 164
15.1.2  演示幻灯片设计 165
15.1.3  用Excel求解模型和创建图表 166
15.1.4  演示幻灯片的评价和评分标准 167
15.2  实验前测验 167
15.3  实验任务 168
15.3.1  截屏和图片的编辑 168
15.3.2  插入视频 168
15.3.3  使用Excel求解模型和创建图表 168
15.3.4  复制和特殊粘贴 170
15.3.5  正式会议中会议纪要和幻灯片设计 170
15.3.6  创建PPT幻灯片 170
15.3.7  幻灯片制作的分工 171
第16章  演讲和演讲评分 172
附录  机器人课程设计项目和比赛规则 173
参考文献 184

教学资源推荐
作者: (美)Nancy A.Lynch
作者: (美)Robert Sedgewick, (法)Philippe Flajolet
作者: [美]内尔·黛尔(Nell Dale) 约翰·路易斯(John Lewis)著
参考读物推荐
作者: [希]帕诺斯·卢里达斯(Panos Louridas) 著
作者: (美)Tim Mather;Subra Kumaraswamy;Shahed Latif 著
作者: 华诚科技 编著
作者: Tom St Denis;Simon Johnson