程序设计课程的目的着重于“计算思维”(Computational Thinking,CT)的训练,也就是分析与分解问题能力的培养,同时借助程序设计语言来实现具体的算法,从而训练学生系统化的逻辑思维。
本书以Java语言来实现各种算法。对于第一次接触计算思维与算法的初学者来说,使用大量的文字来说明算法逻辑常会有挫折感。为了避免教学和阅读上的不顺畅,书中的算法不以伪代码来说明,而是采用Java语言来描述并实现。另外,本书以丰富的图例和简洁明了的文字来阐述各种计算思维与算法逻辑,让初学者在建立计算思维的同时掌握算法逻辑的运用。
本书从介绍计算思维与程序设计两者之间的关系展开,谈到如何培养计算思维的4个部分:分解、模式识别、模式概括与抽象、算法。接着介绍经典算法的分类:分治法、递归法、动态规划法、迭代法、枚举法、回溯法及贪心法。学习了这些基础之后,在接下来的章节中介绍排序算法、查找算法、数组与链表算法、安全性算法、堆栈与队列算法、树结构及其算法和图结构及其算法,并搭配Java语言实现的完整范例程序。
为了检验学习者的学习成果,每一章的最后都安排与本章重点内容相关的习题,让读者有更多实战演练计算思维和算法的机会。
Java的开发工具分成IDE和JDK(Java Development Kit)两种,本书的编译环境采用JDK 13的软件开发工具包,只要使用Windows的“记事本”程序就可以轻松编辑Java程序。
一本好的运算思维与算法逻辑训练方面的书,除了内容的专业性与难易适中外,更需要有清晰易懂的结构。希望所有的学习者通过本书的学习,能够结合Java语言实现算法的过程来建立起计算思维的能力,养成逻辑思维的习惯,并将这种能力和习惯用到自己工作和生活的方方面面。
作者敬笔