Research Catalog

How to design programs : an introduction to programming and computing

Title
How to design programs : an introduction to programming and computing / Matthias Felleisen [and others].
Publication
Cambridge, Mass. : MIT Press, [2001], ©2001.

Items in the Library & Off-site

Filter by

1 Item

StatusFormatAccessCall NumberItem Location
TextRequest in advance QA76.6 .H697 2001Off-site

Holdings

Details

Additional Authors
Felleisen, Matthias.
Description
xxx, 693 pages : illustrations; 24 cm
Subjects
Bibliography (note)
  • Includes bibliographical references and index.
Contents
  • I. Processing Simple Forms of Data. 1. Students, Teachers, and Computers. 2. Numbers, Expressions, Simple Programs. 3. Programs are Function Plus Variable Definitions. 4. Conditional Expressions and Functions. 5. Symbolic Information. 6. Compound Data, Part 1: Structures. 7. The Varieties of Data. Intermezzo 1: Syntax and Semantics -- II. Processing Arbitrarily Large Data. 9. Compound Data, Part 2: Lists. 10. More on Processing Lists. 11. Natural Numbers. 12. Composing Functions, Revisited Again. Intermezzo 2: List Abbreviations -- III. More on Processing Arbitrarily Large Data. 14. More Self-referential Data Definitions. 15. Mutually Referential Data Definitions. 16. Development through Iterative Refinement. 17. Processing Two Complex Pieces of Data. Intermezzo 3: Local Definitions and Lexical Scope -- IV. Abstracting Designs. 19. Similarities in Definitions. 20. Functions are Values. 21. Designing Abstractions from Examples.
  • 22. Designing Abstractions with First-Class Functions. 23. Mathematical Examples. Intermezzo 4: Defining Functions on the Fly -- V. Generative Recursion. 25. A New Form of Recursion. 26. Designing Algorithms. 27. Variations on a Theme. 28. Algorithms that Backtrack. Intermezzo 5: The Cost of Computing and Vectors -- VI. Accumulating Knowledge. 30. The Loss of Knowledge. 31. Designing Accumulator-Style Functions. 32. More Uses of Accumulation. Intermezzo 6: The Nature of Inexact Numbers -- VII. Changing the State of Variables. 34. Memory for Functions. 35. Assignment to Variables. 36. Designing Functions with Memory. 37. Examples of Memory Usage. Intermezzo 7: The Final Syntax and Semantics -- VIII. Changing Compound Values. 39. Encapsulation. 40. Mutable Structures. 41. Designing Functions that Change Structures. 42. Equality. 43. Changing Structures, Vectors, and Objects.
ISBN
0262062186
LCCN
00048169
OCLC
  • ocm45058760
  • SCSB-4218339
Owning Institutions
Columbia University Libraries