本书的读者是各种学院和大学的广大学生,从我们过去5年的经验来看,所有教育和学习课程表上列有计算机科学、工程科学、自然科学、社会科学、数学、管理学、结构学为主课的学生都可成为本书的读者。我们仅缺乏对学习古典文学和健康科学的学生的教学经验,因为GeorgiaTech不提供这些学科的教育课程。学习本书知识不需要读者受过任何大学教育,但需要具有高中基础教育阶段的代数学基础和独立思维的能力。RussellL.Shackelford现在是美国GeorgiaTech大学计算学基础部的主任,他持有计算机科学、教育学和心理学几个方面的学位。他的工作目标是把计算机教育的研究和实践结合起来,开发计算工具等。程序设计是计算机专业学生学习的主要方向,然而,本书作者认为,算法的分析与构建比编程本身更重要,只有很好地解决了算法问题,才可能编写出好的程序。为此,本书分三个部分讨论了计算与算法的问题。第一部分主要回顾了西方历史上各种社会范式的发展,使读者可以了解科学的发展、社会的进步与人类对各种思维范式的研究紧密相关。第二部分概述了用于实现算法的伪代码中的结构和组件、原子基本数据和操作、过程、函数、参数和递归等各种知识,还介绍了查找、排序、优化等算法,此外,关于面向对象范式、正确寻址、正确估算算法的资源成本等也在本部分有专门的章节介绍。第三部分的目标是帮助读者了解什么样的问题能用计算机解决,区分并发与并行的概念,同时进一步讨论了如何将算法与实际问题相关联,并给出了近50年来的各种编程范例。本书适合于各类院校的学生用做计算机知识入门课本,也是喜爱编程的人们培养分析问题能力的最佳参考资料。