+612 9045 4394
How to Design Programs : An Introduction to Programming and Computing - Matthias Felleisen

How to Design Programs

An Introduction to Programming and Computing

Hardcover Published: 18th April 2001
ISBN: 9780262062183
Number Of Pages: 728
For Ages: 18+ years old

Share This Book:


RRP $178.99
or 4 easy payments of $33.13 with Learn more
Ships in 15 business days

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.

List of Figures
Processing Simple Forms of Datap. 3
Students, Teachers, and Computersp. 3
Numbers, Expressions, Simple Programsp. 5
Programs are Function Plus Variable Definitionsp. 21
Conditional Expressions and Functionsp. 29
Symbolic Informationp. 46
Compound Data, Part 1: Structuresp. 51
The Varieties of Datap. 79
Intermezzo 1: Syntax and Semanticsp. 97
Processing Arbitrarily Large Datap. 117
Compound Data, Part 2: Listsp. 117
More on Processing Listsp. 137
Natural Numbersp. 153
Composing Functions, Revisited Againp. 168
Intermezzo 2: List Abbreviationsp. 183
More on Processing Arbitrarily Large Datap. 189
More Self-referential Data Definitionsp. 189
Mutually Referential Data Definitionsp. 209
Development through Iterative Refinementp. 221
Processing Two Complex Pieces of Datap. 228
Intermezzo 3: Local Definitions and Lexical Scopep. 259
Abstracting Designsp. 283
Similarities in Definitionsp. 283
Functions are Valuesp. 299
Designing Abstractions from Examplesp. 306
Designing Abstractions with First-Class Functionsp. 319
Mathematical Examplesp. 334
Intermezzo 4: Defining Functions on the Flyp. 350
Generative Recursionp. 357
A New Form of Recursionp. 357
Designing Algorithmsp. 368
Variations on a Themep. 381
Algorithms that Backtrackp. 406
Intermezzo 5: The Cost of Computing and Vectorsp. 417
Accumulating Knowledgep. 441
The Loss of Knowledgep. 441
Designing Accumulator-Style Functionsp. 450
More Uses of Accumulationp. 466
Intermezzo 6: The Nature of Inexact Numbersp. 478
Changing the State of Variablesp. 491
Memory for Functionsp. 491
Assignment to Variablesp. 496
Designing Functions with Memoryp. 507
Examples of Memory Usagep. 521
Intermezzo 7: The Final Syntax and Semanticsp. 548
Changing Compound Valuesp. 573
Encapsulationp. 573
Mutable Structuresp. 587
Designing Functions that Change Structuresp. 608
Equalityp. 637
Changing Structures, Vectors, and Objectsp. 642
Epiloguep. 677
Indexp. 683
Table of Contents provided by Blackwell. All Rights Reserved.

ISBN: 9780262062183
ISBN-10: 0262062186
Series: How to Design Programs
Audience: Professional
For Ages: 18+ years old
Format: Hardcover
Language: English
Number Of Pages: 728
Published: 18th April 2001
Publisher: MIT Press Ltd
Country of Publication: US
Dimensions (cm): 22.86 x 20.96  x 3.81
Weight (kg): 1.46