基本信息

编辑推荐
陈以农主编的《计算机科学导论(基于机器人的实践方法)》与一般讲解原理的课程不太一样,基于机器人的计算机科学导论课程分为原理和实验两部分。这样学生在学完一个原理之后,就要动手实践这个原理。该课程的实验部分主要基于微软的机器人开发环境MRDS、VPL可视化编程语言以及乐高机器人。学生通过团队合作完成实验内容。该课程还有一个配套的课程设计项目,学生要和参与实际工程项目一样。通过自己组织团队、开会、撰写PPT、对问题进行定义和研究,然后再通过设计、模拟、实验、测试完成整个课程设计。课程设计*终通过机器人比赛的方式进行验收,大大提高了学生参与的积极性。目前这门课程已经成为多所国际著名大学的学术互认课程,并获得了教育部与Intel的认可和支持,被列入了教育部新课程大纲。
内容简介
计算机书籍
陈以农主编的《计算机科学导论(基于机器人的实践方法)》是为大学本科计算机科学和计算机工程专业编写的入门教材,也适用于机械、电气、电子、测控,自动化等专业。教材以培养学生对工程专业的兴趣为主导,培养问题解决能力为目标,内容丰富有趣,从具体到抽象,简单易学,却具有挑战。与其他的计算机科学和工程导论教材不同,本教材以动手实验为中心向概念拓展。实验的设计以理论为基础,以系统化的工程项目开发过程为指导,以人性化团队合作为框架解决每一个工程问题。《计算机科学导论(基于机器人的实践方法)》以*图形化编程语言为工具,机器人实验、手机应用和Web应用的开发既有趣、又实用,从浅到深,步步为营,每周一章,从问题到答案,概念清晰,实验步骤详尽。本教材使用的所有开发环境和教辅资源均可免费在教学中使用。本课程内容已经在多所大学教授多年。
作译者
Chen),1993年获德国卡尔斯鲁厄理工学院(KIT)博士。之后就职于法国科学院和南非金山大学。2001加入美国亚利桑那州立大学,现任高级讲师。在服务计算、云计算、物联网和机器人等领域发表了上百篇学术论文。领导开发了多款教育机器人并首先实现了在云计算环境中的机器人即服务(Robot
as a
Service)和教育创新机器人eRobotic。陈以农博士更致力于计算机教育学和教学方法论的研究,开发多门新课并出版了多本中英文教材,包括《面向服务的计算和Web数据管理》,《浅谈深析面向服务的软件工程》、《Service-Oriented
Computing and Web Software Integration》。
目录
作者简介
前言
教学建议
第1章 团队建设和职业发展机会
1.1 团队建设活动
1.1.1 合作模式
1.1.2 团队组建练习
1.2 计算机科学和工程的职业发展机会
1.2.1 相关的计算机课程体系
1.2.2 国内IT行业就业形势分析
1.2.3 国外计算机相关行业职位及就业形势分析
1.3 职业机会练习
1.3.1 工程方向的职业机会
1.3.2 软件工程方向的职业机会
1.3.3 计算机和数学领域的职业机会
1.3.4 美国最好的职业
第2章 机器人开发环境和VPL入门
2.1 预备知识
2.2 实验前测验
前言
然而,计算机工业的恢复并没有消除计算机专业的生源危机。以亚利桑那州立大学(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月
序言
当我们学一门外语时,如果老师只教我们单词、发音、语法和语义,理论上我们也能学会一门外语。但这种教学方法往往是事倍功半,不少学生会因此而失去学习兴趣。
计算机科学的教学也是一样的。特别是计算机的入门课程,如计算机导论和程序设计语言。我们需要理论与实践结合,概念与应用挂钩,动脑的同时也动手。然而,这个想法虽然普通,但要将其付诸实践却很难,特别是如何把实践和应用放到计算机科学的入门课中就更难。这样一门入门课要让首次接触计算机和程序设计概念的学生能“看见”和“摸到”每个概念是什么,如何运用,应该怎么做。
开设这样一门计算机入门课的难度是多方面的。它必须解决如何在有限的课时内,老师能把概念讲清楚,学生还能动手验证概念。老师不仅要会讲,还必须能手把手地帮助毫无基础的学生在规定的实验课中完成实验。学生不仅要学,还要做,还要自愿花更多的时间去做得比要求的更好。相应实验设备的选择和维护也将增加开设这样一门课的难度。
无疑,开发和讲授这样一门课将比按传统的方式讲授一门计算机导引课程更具挑战。然而,我们必须看到,这是一个亟待解决的问题。从国家发展的层面看,计算机产业是最活跃和最具创新的行业。输送大量合格的毕业生是我们的任务。从教学管理的角度看,随着教育改革的深化,学生可以根据自己的兴趣和爱好来选择专业,也可以在学习期间转换专业。因此,计算机入门课的设计和讲授对于学生了解计算机专业,对计算机专业产生兴趣,为以后的专业课程学习打好基础,就尤为重要。
我很高兴地看到,本书的作者们为解决这一问题提供了一种有效方案。他们把基本的计算机原理和程序设计的概念用于机器人的设计和编程中。软件工程的最新成果、可视化编程语言和模块化机器人的应用,是这一解决方案的关键。它使学生能在更高的设计层次上表达他们的逻辑和思维。尽管增加了动手实验、机器人的构造、编程和比赛,本教材仍然系统地覆盖了计算机导引的主要内容,包括计算机的部件和工作原理、逻辑门的应用、存储器和寄存器结构、算术逻辑单元的设计,以及外围设备的使用。在编程方面,从数据、变量、算法到各种控制结构均有覆盖。从总体结构和教学方法论的角度,我认为本教程最重要的贡献是把整门课的内容组织成了一个完整的工程项目:需求分析、建模、设计、模拟、实现、测试和验收。学生从团队建设开始,定义项目目标和要求。为了达到定义的项目目标和要求,学生开始学习所需的知识。作为机器人编程的准备,他们需要首先用编程来模拟逻辑门和算术逻辑单元的设计和实现,然后学习有限自动机模型,并用这一模型来描述并实现一个自动售货机。在准备好需要的知识后,他们以最终的绕障碍机器人比赛为目标来定义要求,用有限自动机来建模,根据模型来设计算法,在机器人的三维模拟环境中测试模型和算法的正确性,测试通过后再将算法放到实际的机器人中作现场测试。最后,在机器人比赛中对整个项目进行最终验收。
这门课的内容已经在亚利桑那州立大学、山东财经大学、重庆大学和浙江大学开设并获取了成功的经验。英特尔中国公司和智翔集团的参与和支持更凸显这门课将理论和实践相结合的特点。作为一名多年从事计算机科学教育和研究的学者,我衷心希望这本教材能为计算机科学的教育尝试一条新路,为那些想开设这样一门课程,但却没有足够资源的学校和老师提供启发和帮助,也希望更多的计算机教材和课程能向理论与实践相结合的方向发展。
我一直很信仰明代大儒王阳明倡导的“知行合一”。作为教师,这是我们对学生的希望,但我们自身更应该在教学中率先垂范。
梅宏
2013年8月