前言
程序设计基础——上机实习及习题集2006年3月,美国科学基金会计算机与信息科学工程部主任周以真(Jeannette M. Wing)教授首先提出并定义了“计算思维”(Computational Thinking,CT)这一概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。2011年,图灵奖获得者Richard M. Karp提出了“计算透镜”(Computational Lens)理念,其核心是将计算作为一种通用的思维方式,通过这种广义的计算(涉及信息、执行算法、关注复杂度)来描述各类自然过程和社会过程,从而解决各个学科的问题。
在美国,计算思维的提出得到了教育界和科学界的广泛支持。美国科学基金会投入巨资启动“大学计算教育振兴的途径”进行美国计算教育的改革,并且对计算思维所发挥的作用达成共识。美国科学基金会还启动了以计算思维为核心的重大基础研究,进一步将计算思维的培育扩展到美国的各个研究领域。
在我国,计算思维的重要性也引起了科学家和教育界人士的高度重视。教育部高等学校计算机基础课程教学指导委员会主任委员陈国良院士等积极地倡导把培养学生的计算思维能力作为计算机基础教学的核心任务,并由此建设更加完备的计算机基础课程体系和教学内容。
为了更好地培养我国高等学校学生的计算思维能力,《程序设计基础》(赵宏主编,主教材)详细地介绍了一些利用计算机求解问题的原理和方法、C++语言的基础知识、常见数据结构,以及如何使用C++语言和常用数据结构实现算法解决实际应用问题等内容,并且通过对一些精选问题求解思路和方法的分析,以及针对初学者容易出现错误和困惑的地方提供的大量提示,帮助读者更好地理解使用计算机解决问题的基本方法,达到使用C++程序设计语言解决实际问题的目的。
实践是训练计算思维和学习高级程序设计语言必不可少的环节。本书是《程序设计基础》的配套教材,书中精心地为各章选编了配套的计算思维训练练习和上机实习题目,并在思想方法、算法和语法上给出了相应的指导。还为每一章选编了配套的练习题目并给出了参考答案。目的是使初学者通过理论结合实际练习,逐步提高计算思维能力,掌握使用计算机解决问题的基本思想和方法。本书可以作为高等学校学生提高计算思维能力、学习计算机高级语言程序设计课程的辅助教材。
本书由南开大学计算机学院公共计算机基础教学部的教师结合多年的教学经验和大学计算机课程教学的发展编著而成。本书面向我国高校计算机专业学生和非计算机专业理工科学生,力争使学生在有限课时内学习有关计算基础知识,能够用C++程序设计语言和常用数据结构实现一些基本算法,同时具有自觉使用计算思维去解决实际问题的能力。王恺负责编写第4~6章、第8章、第9章、第14章及第15章并统编全书,赵宏负责编写第1~3章、第7章、第10~13章及第16章。
在本书的编写过程中,得到了清华大学出版社张瑞庆编审的大力支持,在此表示真诚的感谢!
本书还参考了国内外的一些程序设计方面的开放课程网站和书籍,力求有所突破和创新。由于能力和水平的限制,书中难免存在欠妥之处,恳请读者指正。
编者
2019年6月于南开园 程序设计基础——上机实习及习题集