本書的讀者是各種學院和大學的廣大學生,從我們過去5年的經驗來看,所有教育和學習課程表上列有計算機科學、工程科學、自然科學、社會科學、數學、管理學、結構學為主課的學生都可成為本書的讀者。我們僅缺乏對學習古典文學和健康科學的學生的教學經驗,因為GeorgiaTech不提供這些學科的教育課程。學習本書知識不需要讀者受過任何大學教育,但需要具有高中基礎教育階段的代數學基礎和獨立思維的能力。RussellL.Shackelford現在是美國GeorgiaTech大學計算學基礎部的主任,他持有計算機科學、教育學和心理學幾個方面的學位。他的工作目標是把計算機教育的研究和實踐結合起來,開發(fā)計算工具等。程序設計是計算機專業(yè)學生學習的主要方向,然而,本書作者認為,算法的分析與構建比編程本身更重要,只有很好地解決了算法問題,才可能編寫出好的程序。為此,本書分三個部分討論了計算與算法的問題。第一部分主要回顧了西方歷史上各種社會范式的發(fā)展,使讀者可以了解科學的發(fā)展、社會的進步與人類對各種思維范式的研究緊密相關。第二部分概述了用于實現算法的偽代碼中的結構和組件、原子基本數據和操作、過程、函數、參數和遞歸等各種知識,還介紹了查找、排序、優(yōu)化等算法,此外,關于面向對象范式、正確尋址、正確估算算法的資源成本等也在本部分有專門的章節(jié)介紹。第三部分的目標是幫助讀者了解什么樣的問題能用計算機解決,區(qū)分并發(fā)與并行的概念,同時進一步討論了如何將算法與實際問題相關聯,并給出了近50年來的各種編程范例。本書適合于各類院校的學生用做計算機知識入門課本,也是喜愛編程的人們培養(yǎng)分析問題能力的最佳參考資料。