《高等学校“十二五”公共课计算机规划教材:计算思维基础》从计算机基础教学中如何培养大学生计算思维能力出发,对“大学计算机基础”课程教学改革进行了一些探讨和研究,将思维训练融入教学的各环节中,以期进一步提升大学生的综合素质和能力,挖掘大学生的学习潜能。全书共7章,主要内容包括计算机与计算思维、信息技术基础、问题求解、数据的组织与管理、算法设计、算法分析与问题优化、综合案例等。书中引入了国外先进教学理念,贯彻了启发思辨原则。
《高等学校“十二五”公共课计算机规划教材:计算思维基础》可作为高等学校非计算机各专业、计算机成人教育各类进修班与培训班学习计算思维基础知识的教材,也可供广大工程技术人员和管理人员。
随着信息科学在电子商务、虚拟制造、高精尖数字设备、信息化医疗设备等领域得到越来越广泛的应用,本科生信息基础课程的培养要求越来越高——要求从单纯知识和技能的培养层面,提高到意识和思维的培养层面。
近年来,国内外对计算思维课程的讨论如火如荼,在高校设置计算思维课程体系的理论探究与实践也陆续出现。例如,由李国杰院士任组长的中国科学院信息领域战略研究组撰写的《中国至2050年信息科技发展路线图》中,对“计算思维”给予了足够的重视,认为计算思维的培育是克服“狭义工具论”的有效途径,是解决其他信息科技难题的基础。又如,国家自然科学基金委员会信息科学部二处处长刘克教授,强调了在大学中推进“计算思维”这一基本理念的必要性。
计算思维课程应并非仅面向计算机科学专业,而是面向所有专业。例如,主修英语或数学等,可从事于各行各业;计算机科学也一样,主修计算机科学,也可以从事任何类型的工作。我们应当激发学生对计算机科学的兴趣,让学生热爱计算机科学并积极探索,传播计算机科学的快乐和力量,致力于使计算思维成为公众的常识,真正融入人类的一切活动中。
本书认为,计算主义创造自动模型,建立捕获处理的模型,处理依次可自动化并可操作,不需要人完成每一步,但需要有使每一步成为可用和可能的计划。
本书还认为,思维是人脑对客观事物本质属性和内部规律的间接(在已有经验基础上,通过推理来认识事物)或概括(对一类事物共同本质特征和规律性联系的归纳)反映过程。
本书共包含7章。第1章计算机与计算思维由夏耘老师编写,第2章信息技术基础由黄春梅老师和程国曙老师编写,第3章问题求解由黄小瑜老师编写,第4章数据的组织与管理由刘丽霞老师编写,第5章算法设计由臧劲松老师编写,第6章算法分析与问题优化由杨赞老师编写,第7章综合案例由马立新老师编写。夏耘、黄小瑜老师负责全书的总体策划与统稿、定稿工作。
在本书的编写过程中,得到了其他高等学校(复旦大学、西安交通大学和同济大学)的关心、支持和帮助,他们在书稿的审阅中提出了宝贵的意见与建议,在此对于各位老师的帮助,以及有关专家、教师长期以来对我们工作的支持和关心,表示衷心感谢。
由于作者本身的水平有限,再加上写作时间仓促,不当之处在所难免,衷心希望读者给予批评指正。
编者
2012年6月
第1章 计算机与计算思维
1.1 计算机
1.1.1 什么是计算
1.1.2 计算工具
1.1.3 计算机的工作原理和用途
1.2 计算机应用系统的计算模式
1.2.1 单主机计算模式
1.2.2 分布式客户/服务器计算模式
1.2.3 浏览器/服务器计算模式
1.3 新的计算模式
1.3.1 普适计算
1.3.2 网格计算
1.3.3 云计算
1.3.4 人工智能
1.3.5 物联网
思考题
第2章 信息技术基础
2.1 信息的编码与解码
2.1.1 数制与运算
2.1.2 信息的编码
2.2 计算机硬件基础
2.2.1 布尔逻辑与门电路
2.2.2 计算机基本结构和工作原理
2.2.3 指令与指令系统
2.2.4 信息在计算机内的表示
思考题
第3章 问题求解
3.1 问题求解概念
3.1.1 一般问题解决过程
3.1.2 计算机求解问题的过程
3.1.3 编程思想
3.2 计算机编程的基本概念
3.2.1 常量和变量
3.2.2 数据类型
3.2.3 函数与表达式
3.2.4 绘图工具Visio介绍
3.3 程序结构
3.3.1 顺序结构
3.3.2 条件结构
3.3.3 循环结构
思考题
第4章 数据的组织与管理
4.1 数据结构
4.1.1 线性表
4.1.2 树形结构
4.1.3 图结构
4.2 数据库技术
4.2.1 数据管理技术
4.2.2 数据库管理系统
4.2.3 查询语言SQL
4.2.4 设计和创建数据库
4.2.5 数据库案例分析
思考题
第5章 算法设计
5.1 算法的基本概念
5.1.1 算法定义与性质
5.1.2 设计算法原则和过程
5.1.3 算法的基本表达
5.2 算法策略
5.2.1 枚举法
5.2.2 递归法
5.2.3 分治法
5.2.4 回溯法
5.3 基本算法
5.3.1 基础知识
5.3.2 排序
5.3.3 查找
思考题
第6章 算法分析与问题优化
6.1 算法分析
6.1.1 算法时间复杂度分析
6.1.2 算法空间复杂度分析
6.2 问题优化
6.2.1 贪心法
6.2.2 动态规划
思考题
第7章 综合案例
7.1 案例1 五子棋游戏开发
7.2 案例2 车牌竞拍系统开发
思考题
附录A JDK与Eclipse的安装设置
附录B Visual C++中编写C代码
参考文献