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 MapItem 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 |
, Shelving location: Main Collection Close shelf browser
005.12 DA GU Guide to programming with Python / | 005.12 DE SY Systems analysis and design : an object-oriented approach with UML / | 005.12 DI SO Software essentials : | 005.12 FE HO How to design programs : | 005.12 FE HO How to design programs : | 005.12 FO UM UML distilled : | 005.12 GA DE Design patterns : elements of reusable object-oriented software. |
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.