How to Design Programs: An Introduction to Programming and Computing / Edition 1

How to Design Programs: An Introduction to Programming and Computing / Edition 1

by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
     
 

ISBN-10: 0262062186

ISBN-13: 9780262062183

Pub. Date: 02/12/2001

Publisher: MIT Press

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

…  See more details below

Overview

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.

The MIT Press

Read More

Product Details

ISBN-13:
9780262062183
Publisher:
MIT Press
Publication date:
02/12/2001
Edition description:
New Edition
Pages:
728
Sales rank:
771,794
Product dimensions:
7.87(w) x 9.00(h) x 0.18(d)
Age Range:
18 Years

Table of Contents

Contents
List of Figures
Preface
IProcessing Simple Forms of Data3
1Students, Teachers, and Computers3
2Numbers, Expressions, Simple Programs5
3Programs are Function Plus Variable Definitions21
4Conditional Expressions and Functions29
5Symbolic Information46
6Compound Data, Part 1: Structures51
7The Varieties of Data79
Intermezzo 1: Syntax and Semantics97
IIProcessing Arbitrarily Large Data117
9Compound Data, Part 2: Lists117
10More on Processing Lists137
11Natural Numbers153
12Composing Functions, Revisited Again168
Intermezzo 2: List Abbreviations183
IIIMore on Processing Arbitrarily Large Data189
14More Self-referential Data Definitions189
15Mutually Referential Data Definitions209
16Development through Iterative Refinement221
17Processing Two Complex Pieces of Data228
Intermezzo 3: Local Definitions and Lexical Scope259
IVAbstracting Designs283
19Similarities in Definitions283
20Functions are Values299
21Designing Abstractions from Examples306
22Designing Abstractions with First-Class Functions319
23Mathematical Examples334
Intermezzo 4: Defining Functions on the Fly350
VGenerative Recursion357
25A New Form of Recursion357
26Designing Algorithms368
27Variations on a Theme381
28Algorithms that Backtrack406
Intermezzo 5: The Cost of Computing and Vectors417
VIAccumulating Knowledge441
30The Loss of Knowledge441
31Designing Accumulator-Style Functions450
32More Uses of Accumulation466
Intermezzo 6: The Nature of Inexact Numbers478
VIIChanging the State of Variables491
34Memory for Functions491
35Assignment to Variables496
36Designing Functions with Memory507
37Examples of Memory Usage521
Intermezzo 7: The Final Syntax and Semantics548
VIIIChanging Compound Values573
39Encapsulation573
40Mutable Structures587
41Designing Functions that Change Structures608
42Equality637
43Changing Structures, Vectors, and Objects642
Epilogue677
Index683

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >