前言
当今社会,信息化水平正在从数字化、网络化阶段向智能化阶段发展。计算,是计算机获得智能的根本方法,是人类获得计算机赋能的基本途径。深入学习和体验计算方法,探索构建各种计算模型实现智能信息处理,有效利用计算机获得更有价值的计算结果,是新时代计算思维的基本内涵。
计算思维被认为是与理论思维、实验思维并列的第3种思维模式,是“互联网+”、大数据和人工智能时代所有人都应具备的一种思维模式。近几年来,国家推行了一系列由信息技术引领的行动计划,如“‘互联网+’行动计划”“新一代人工智能发展规划”等。这些计划的关键和基础是要培养一批具有“互联网+”思维、“大数据”思维和“人工智能”思维的人才。这些思维本质上都是计算思维。计算思维,既不能狭义地理解为“各种计算机硬件/软件的应用”,又不能狭义地理解为“计算机语言程序设计训练”,它其实是解决社会、自然问题的一种思维方式。例如:计算机管理“磁盘”所使用的“化整为零、还零为整”思维,对进行现实中不同性能资源(如物流仓储配送中的资源)的高效管理具有指导意义;管理“程序执行”的“分工—合作—协同”思维,对现实中管理和执行宏观任务也有借鉴作用。因此,计算思维对培养既有宏观协调能力又有微观精细化执行能力的新时代人才有重要的意义。
在这种背景下,各高等学校纷纷开设以培养学生的计算思维为教学目标的“大学计算机”课程,要求各学科各专业的学生都要学习这门课程。那么,“大学计算机”应该是一门什么样的课程呢?它应是面向大学低年级学生开设的,与“大学数学”“大学物理”有同等地位的技术型通识类思维教育课程。它不应是只讲授计算机及软件具体应用的课程,也不应是仅仅训练学生程序设计能力的课程,它应是讲授每个大学生都要具备的计算思维的课程。当前,国家正在大力推动新工科建设,其中一个重要方面就是强调“各学科+计算机”,其根本应是“各学科+计算思维”。
那么,大学生应如何学习“大学计算机”课程呢?我们认为,应更多地强调“思维”,而不应仅着眼于“知识”(即事实的学习)。你可以不知道“计算思维”的定义,那仅是概念,但你应该知道“符号化—计算化—自动化”,应该知道“计算系统与程序的关系”,应该知道“程序是如何被机器自动执行的”……这些都是体现计算思维的直观例子。以潜移默化的方式理解和接受计算思维,是学习和掌握本门课程最重要的方式。举个例子,中医里讲究“穴位”,不同的穴位连接起来就是“脉络”,不同的脉络在临床诊断时有不同的意义,这是中医的基本认识。但即使你知道了脉络,为什么还不能治病呢?这是因为你没有能力让气息在脉络间流动。要做到这点,就需要长期训练。知识好比是“穴位”,而一年级时学习“大学计算机”课程,好比是在学习“脉络”,你要熟悉这些“脉络”,然后才能进行“诊断”。当你经过若干年的不断努力,深入理解了知识,能将知识融会贯通时,你就能将思维转变成能力——运用计算思维的能力,有了这种思维能力,也就获得了计算机赋能的本领。
本书从最基本的“计算”讲起,从“计算+”到“智能+”“大数据+”“互联网+”,覆盖了计算学科经典、重要的计算思维,并从学习者的角度组织教学内容:首先,站在学科高度,凝练教学内容,提取重点,以精练的语言进行讲述;然后,通过大量的、丰富的示例题目,引导读者对教学内容进行渐进式的、有深度的探索;最后,将教学内容转换成不同深度的示例题目,在场景、练习、模拟中,实现学习者对不同深度教学内容的理解,进而达到让学习者“不仅了解计算思维,而且能够理解和运用计算思维”的目标。
本书适合各专业的大学本科生学习。总学时安排48学时为宜(不含实验学时)。如果非计算机专业不再开设高级语言程序设计课程,则需增加实验,需分配64学时;如果开设高级语言程序设计课程,则建议本课程不增加实验,因为实验会涉及很多细节性的内容,在学时有限的情况下会影响学生对计算思维的理解,学校可依据实际情况,进行调整和设置。另外,书中标记“扩展学习”的内容,可作为课程的延伸内容,由教师引导,学生自主学习。示例题目前标记“*”的,表明该题目有一定难度。
本书由战德臣、张东生和王冬编著。其中:战德臣编写了第1~9章,第11~16章;张东生、李涵编写了第10章;孙丽娜、王秋雨、王冬、侯松鹂、万敏、李涵、谢苑分别参与了第1~2章、第3~4章、第5~7章、第8~9章、第11~12章、第13章、第14~16章的案例素材和示例准备。
本书在编写过程中参考了《深度学习:基于Python语言和TensorFlow平台》(作者:谢琼)、《数学之美(第二版)》(作者:吴军)等著作,得到了许多高校同行的指点和帮助,在此表示感谢。
本书得到教育部高等学校大学计算机课程教学指导委员会的大力支持,获得河南省教师教育课程改革研究项目资助,在此表示感谢。另外,感谢哈尔滨工业大学本科生院、计算机学院、河南大学软件学院对本书的编写和出版工作所给予的大力支持。
编者
2019年2月