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. A second edition is now available.
Matthew Flatt Boeken


Practical Aspects of Declarative Languages
16th International Symposium, PADL 2014, San Diego, CA, USA, January 19-20, 2014, Proceedings
- 249bladzijden
- 9 uur lezen
This book constitutes the refereed proceedings of the 16th International Symposium on Practical Aspects of Declarative Languages, PADL 2014, held in SanDiego, CA, USA, in January 2014, co-located with POPL 2014, the 41st Symposium on Principles of Programming Languages. The 15 revised papers presented were carefully reviewed and selected from 27 submissions. They cover a wide range of topics related to logic and functional programing, including language support for parallelism and GPUs, constructs and techniques for modularity and extensibility, and applications of declarative programming to document processing and DNA simulation.