Skip to content

How to Design Programs An Introduction to Programming and Computing

Best in textbook rentals since 2012!

ISBN-10: 0262062186

ISBN-13: 9780262062183

Edition: 2001

Authors: Matthias Felleisen, Robert Bruce Findler, Shriram Krishnamurthi, Matthew Flatt

List price: $95.00
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

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.…    
Customers also bought

Book details

List price: $95.00
Copyright year: 2001
Publisher: MIT Press
Publication date: 2/26/2001
Binding: Hardcover
Pages: 724
Size: 8.25" wide x 9.00" long x 1.50" tall
Weight: 3.190
Language: English

Matthias Felleisen is Trustee Professor of Computer Science at Northeastern University, recipient of the Karl V. Karlstrom Outstanding Educator Award, and co-author (with Daniel Friedman) of The Little Schemer and three other "Little" books published by the MIT Press.

Robert Bruce Findler is Assistant Professor of Electrical Engineering and Computer Science at Northwestern University.

Shriram Krishnamurthi is Assistant Professor of Computer Science at Brown University.

Matthew Flatt is Associate Professor in the School of Computing at the University of Utah.

Contents
List of Figures
Preface
Processing Simple Forms of Data
Students, Teachers, and Computers
Numbers, Expressions, Simple Programs
Programs are Function Plus Variable Definitions
Conditional Expressions and Functions
Symbolic Information
Compound Data, Part 1: Structures
The Varieties of Data
Intermezzo 1: Syntax and Semantics
Processing Arbitrarily Large Data
Compound Data, Part 2: Lists
More on Processing Lists
Natural Numbers
Composing Functions, Revisited Again
Intermezzo 2: List Abbreviations
More on Processing Arbitrarily Large Data
More Self-referential Data Definitions
Mutually Referential Data Definitions
Development through Iterative Refinement
Processing Two Complex Pieces of Data
Intermezzo 3: Local Definitions and Lexical Scope
Abstracting Designs
Similarities in Definitions
Functions are Values
Designing Abstractions from Examples
Designing Abstractions with First-Class Functions
Mathematical Examples
Intermezzo 4: Defining Functions on the Fly
Generative Recursion
A New Form of Recursion
Designing Algorithms
Variations on a Theme
Algorithms that Backtrack
Intermezzo 5: The Cost of Computing and Vectors
Accumulating Knowledge
The Loss of Knowledge
Designing Accumulator-Style Functions
More Uses of Accumulation
Intermezzo 6: The Nature of Inexact Numbers
Changing the State of Variables
Memory for Functions
Assignment to Variables
Designing Functions with Memory
Examples of Memory Usage
Intermezzo 7: The Final Syntax and Semantics
Changing Compound Values
Encapsulation
Mutable Structures
Designing Functions that Change Structures
Equality
Changing Structures, Vectors, and Objects
Epilogue
Index