Felleisen. How To Design Programs
This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers.
The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks.
All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects.
Dybvig. The Scheme Programming Language
This thoroughly updated edition of The Scheme Programming Language provides an introduction to Scheme and a definitive reference for standard Scheme, presented in a clear and concise manner. Written for professionals and students with some prior programming experience, it begins by leading the programmer gently through the basics of Scheme and continues with an introduction to some of the more advanced features of the language. Many exercises are presented to help reinforce the lessons learned, and answers to the exercises are given in a new appendix. Most of the remaining chapters are dedicated to the reference material, which describes in detail the standard features of Scheme included in the Revised Report on Scheme and the ANSI/IEEE standard for Scheme. Numerous examples are presented throughout the introductory and reference portions of the text, and a unique set of extended example programs and applications, with additional exercises, are presented in the final chapter. Reinforcing the book's utility as a reference text are appendixes that present the formal syntax of Scheme, a summary of standard forms and procedures, and a bibliography of Scheme resources. The Scheme Programming Language stands alone as an introduction to and essential reference for Scheme programmers. It is also useful as a supplementary text for any course that uses Scheme. The Scheme Programming Language is illustrated by artist Jean-Pierre Hebert, who writes Scheme programs to extend his ability to create sophisticated works of digital art.
徐子珊. 算法设计、分析与实现从入门到精通:C、C++和Java
本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。《算法设计、分析与实现从入门到精通:C、C++和Java》还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。《算法设计、分析与实现从入门到精通:C、C++和Java》插图也精美,如Hanoi塔图等,都给《算法设计、分析与实现从入门到精通:C、C++和Java》增色很多,让读者在兴趣中学习。此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
裘宗燕. 从问题到程序
有没有感觉学编程语言,学算法,还是不会写程序,那是因为没看这本书。ACM必备。
《从问题到程序:程序设计与C语言引论》以c作为工具语言,讨论了基本程序设计的各方面内容,详细解释了与c语言和程序设计有关的问题。在新版中,特别加强了针对近年日益受到业界和学术界广泛重视的问题的讨论,并通过详细地分析和讨论大量符合c99标准的实例,给出了分析和分解问题、找出解决问题的主要步骤、确定函数抽象、找出循环、选择语言结构直至最后做出所需程序的完整过程。