How to Design Programs
Subtitle: An Introduction to Programming and Computing
Publisher: The MIT Press
Published: February 12, 2001
Language: eng
Format: Hardcover
Number of pages: 720
ISBN-13: 9780262062183
Subjects: Systems analysis & design; Computers; Computers - Languages / Programming; Computer Books: General; Computer Science; Programming - Software Development; Computers / Computer Science; Programming - General; Computer Programming; Electronic data processing
First sentence: Getting Started We learn to compute at a young age.
Table of contents: title: Processing simple forms of data.; title: Students, teachers, and computers; title: Numbers, expressions, simple programs; title: Programs are function plus variable definitions; title: Conditional expressions and functions; title: Symbolic information; title: Compound data, part 1: structures; title: The varieties of data; title: Syntax and semantics; title: Processing arbitrarily large data.; title: Compound data, part 2: lists; title: More on processing lists; title: Natural numbers; title: Composing functions, revisited again; title: List abbreviations; title: More on processing arbitrarily large data.; title: More self-referential data definitions; title: Mutually referential data definitions; title: Development through iterative refinement; title: Processing two complex pieces of data; title: Local definitions and lexical scope; title: Abstracting designs.; title: Similarities in definitions; title: Functions are values; title: Designing abstractions from examples; title: Designing abstractions with first-class functions; title: Mathematical examples; title: Defining functions on the fly; title: Generative recursion.; title: A new form of recursion; title: Designing algorithms; title: Variations on a theme; title: Algorithms that backtrack; title: The cost of computing and vectors; title: Accumulating knowledge.; title: The loss of knowledge; title: Designing accumulator-style functions; title: More uses of accumulation; title: The nature of inexact numbers; title: Changing the state of variables.; title: Memory for functions; title: Assignment to variables; title: Designing functions with memory; title: Examples of memory usage; title: The final syntax and semantics; title: Changing compound values.; title: Encapsulation; title: Mutable structures; title: Designing functions that change structures; title: Equality; title: Changing structures, vectors, and objects