前言
“计算机程序设计”是大学各专业普遍开设的一门重要的核心基础课程,其主要内容包括程序设计的理论、方法与技术。
程序设计过程是一项融合阅读判断、逻辑思维、抽象表达、工具利用等多项技能综合应用的创造性思维(程序思维)活动。程序思维是使编程者站在计算机的角度思考问题,在头脑中运用计算机运行的基本机制,模仿其操作方式,来分析和解决问题的思考过程及方法。程序思维关注的不是问题有没有解,而是如何去求解。因此,它跳出了具体的语言环境,探索对所有编程语言行之有效的过程及方法,是一种基础性思维。程序思维是各专业大学生必须具备的一项最基本的核心素养,包括掌握编程语言的语法知识,以及分析解决问题能力、代码优化能力、持续学习适应新技术能力、团队协作和沟通能力等多方面。
基于以上思考,本书以大学生的程序设计能力培养为导向,以学生已有的知识和技能为起点,以问题驱动,基于实际问题情景设计教学方案,将程序思维训练贯穿于教学全过程,采用项目式、探究式教学,支持学生开展自主性、研究型学习。
本书有以下三个特色。
(1) 内容先进,注重实践和应用。本书覆盖了计算机程序设计的各个环节和阶段,采用“基础知识→核心技术→实践演练”的结构进行全书内容的组织。
每章开始设置了内容提要、学习目的和要求、重要知识点,使学生在学习本章之前就知晓拟学习的主题、主要内容和学习目标。每章最后扼要总结了本章的重要概念、理论与方法,并设有形式丰富的习题供读者课后练习。各章内容相对独立,教师可以根据课程计划学时和专业需要自由选择和组合相关内容,以保持课程体系结构的完整性。书中还引入了一些能够被本科生理解且具有一定复杂度的应用实例,并设置了很多课程思政教学元素,循序渐进地引导学生掌握正确认识问题、分析问题和解决问题的高阶思维能力和创新能力。
(2)精心编排,便于学习和教学。叙述脉络上,本书采用了“深入浅出,化繁为简,以简驭繁”的模式,首先介绍计算机程序设计的相关基础知识,然后引入程序设计的核心技术,最后辅以具体的案例进行实践演练。讲解方法上,本书以计算机问题为驱动,通过案例深入,对复杂问题通过分析予以简化,帮助读者清晰地理解问题,在案例分析的基础上引导读者厘清思路,形成对问题的总体观点,逐步加深对算法的理解。编排逻辑上,本书注重对算法的过程描述,促进读者深刻地认知,并将实际问题分解转换为算法形成的能力,运用结构化、模块化设计思想以简捷的方式处理繁杂的问题,由浅入深,将简单问题提升到思维层次,最终达到问题求解,如下图所示。
图能力导向、问题驱动的程序设计教学模式
(3)可读性好,配套资源丰富。本书写作过程中,力求将程序设计的相关理论、方法、技术与文学艺术、人们的日常生活、人类思维方法等相结合,使学生能切身感受到与程序设计相关的人文情怀,提高学习的兴趣和主动性。本书体现了作者过去数十年的教学经验积累,力争在将理论与实践相结合、课内课外融合、反映学科发展前沿,以及适应时代发展对大学生培养的新趋势和新要求等方面取得好的效果。除本书外,编者还开发了配套的教学大纲、考试大纲、教学日历、多媒体课件、教学视频、习题库、课程思政案例及视频、实践辅导书、源代码等配套的立体化教学资源,供感兴趣的读者选用。
本书将围绕计算机程序设计所涉及的基础知识、基本方法和基本技术等相关内容展开,包括计算机程序设计所需要具备的基础知识、程序设计过程所用的方法与技术、如何针对不同类型的数据进行组织与处理等。案例环节,按照“分析问题→设计算法→编写代码→调试运行→编写文档”的顺序,揭示计算机问题求解的整个过程。
全书共分为三篇。
第一篇: 计算机程序设计基础。
第一篇包括第1~3章。第1章主要介绍计算机系统的工作原理,利用计算机进行问题求解的过程,指出程序设计的目的和意义,并简要介绍本书的依托环境——C语言的起源、发展情况,C环境下开发与运行程序的过程。第2章剖析了计算机程序的基本结构,介绍结构化程序的构成要素,归纳了程序设计的基本方法与技术、程序设计的原则与风格。第3章在介绍数据类型含义的基础上,简要介绍计算机程序设计中不同数据类型的组织与处理方法。
第二篇: 计算机程序设计方法。
第二篇包括第4、5章。第4章为结构化程序设计方法,系统地介绍顺序、选择和循环三种基本结构化程序的设计方法及技术。第5章为模块化程序设计方法,深入剖析模块化程序设计的思想,详细介绍模块化程序设计的方法与技术。
第三篇: 数据组织与处理技术。
第三篇包括第6~10章。第6章介绍批量数据组织与处理方法,第7章介绍混合数据组织与处理方法,第8章介绍对数据的间接访问方法,第9章介绍动态数据组织与处理方法,第10章介绍磁盘数据组织与处理方法。
本书的写作,得益于很多同事、同行的帮助、讨论以及在具体事务上的支持。在此谨向他们表示衷心的感谢!
在编写过程中,作者参考和借鉴了大量的国内外优秀教材、文献以及网络上有价值的资料。鉴于许多资料存在大量未曾标明出处的相互转载,因时间、精力所限,作者不能逐一查考其原作者。为此,谨向有关的作者、编者、译者和网站表示衷心的感谢!
由于作者水平有限,书中难免存在错误和不妥之处,恳请广大读者批评指正。
“愿将黄鹤翅,一借飞云空。”程序设计没有一蹴而就的捷径,希望读者能借本书这个台阶,切实提升自己的计算机程序设计与实现能力!
编者2025年2月