Normal view MARC view ISBD view

How to design programs : an introduction to programming and computing

By: Felleisen, Matthias
Title By: Findler, Robert Bruce | Flatt, Matthew | Krishnamurthi, Shriram
Material type: BookPublisher: London : The MIT Press, c2001.Description: xxx, 693 p. : ill. ; 24 cm.ISBN: 0262062186 ; 9780262062183Subject(s): Computer programming | Electronic data processingDDC classification: 005.12 FE HO Online resources: Location Map
Summary:
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. - Publisher.
Tags from this library: No tags from this library for this title. Log in to add tags.
    average rating: 0.0 (0 votes)
Item type Home library Call number Status Notes Date due Barcode Item holds
REGULAR University of Wollongong in Dubai
Main Collection
005.12 FE HO (Browse shelf) Available May2018 T0059618
Total holds: 0

Includes index.

Includes bibliographical references and index.

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
Syntax and semantics
Processing arbitrarily large data. Compound data, part 2: lists
More on processing lists
Natural numbers
Composing functions, revisited again
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
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
Defining functions on the fly
Generative recursion. A new form of recursion
Designing algorithms
Variations on a theme
Algorithms that backtrack
The cost of computing and vectors
Accumulating knowledge. The loss of knowledge
Designing accumulator-style functions
More uses of accumulation
The nature of inexact numbers
Changing the state of variables. Memory for functions
Assignment to variables
Designing functions with memory
Examples of memory usage
The final syntax and semantics
Changing compound values. Encapsulation
Mutable structures
Designing functions that change structures
Equality
Changing structures, vectors, and objects.

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. - Publisher.

Powered by Koha