• Complain

Felleisen Matthias - How to Design Programs: An Introduction to Programming and Computing

Here you can read online Felleisen Matthias - How to Design Programs: An Introduction to Programming and Computing full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2018, publisher: The MIT Press, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

No cover

How to Design Programs: An Introduction to Programming and Computing: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "How to Design Programs: An Introduction to Programming and Computing" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

A completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming.This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting 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, how to finish the program, and how to test it. Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language. For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks.This second edition has been completely revised. While the book continues to teach a systematic approach to program design, the second edition introduces different design recipes for interactive programs with graphical interfaces and batch programs. It also enriches its design recipes for functions with numerous new hints. Finally, the teaching languages and their IDE now come with support for images as plain values, testing, event-driven programming, and even distributed programming.

Felleisen Matthias: author's other books


Who wrote How to Design Programs: An Introduction to Programming and Computing? Find out the surname, the name of the author of the book and a list of all author's works by series.

How to Design Programs: An Introduction to Programming and Computing — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "How to Design Programs: An Introduction to Programming and Computing" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make

HOW TO DESIGN PROGRAMS

AN INTRODUCTION TO PROGRAMMING AND COMPUTING

SECOND EDITION

Matthias Felleisen
Robert Bruce Findler
Matthew Flatt
Shriram Krishnamurthi

The MIT Press
Cambridge, Massachusetts
London, England

2018 Massachusetts Institute of Technology

Illustrations 2000 Torrey Butzer

This work is licensed to the public under a Creative Commons

Attribution-NonCommercial-NoDerivatives 4.0 license (international):

http://creativecommons.org/licenses/by-nc-nd/4.0/

All rights reserved except as licensed pursuant to the Creative Commons license identified above. Any reproduction or other use not licensed as above, by any electronic or mechanical means (including but not limited to photocopying, public distribution, online display, and digital information storage and retrieval) requires permission in writing from the publisher.

This book was set in Scribble and LaTeX by the authors.

Library of Congress Cataloging-in-Publication Data

Names: Felleisen, Matthias.

Title: How to design programs: an introduction to programming and computing / Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi.

Description: Second edition. | Cambridge, MA: The MIT Press, [2017] | Revised edition of: How to design programs / Matthias Felleisen [et al.]. 2001. | Includes bibliographical references and index.

Identifiers: LCCN 2017018384 | ISBN 9780262534802 (pbk.: alk. paper)

Subjects: LCSH: Computer programming. | Electronic data processing.

Classification: LCC QA76.6.H697 2017 | DDC 005.1/2dc23

LC record available at https://lccn.loc.gov/2017018384

Contents

List of Figures

: The basic steps of a function design recipe

: The dependencies among parts and intermezzos

: Meet DrRacket

: Landing a rocket (version 1)

: Landing a rocket (version 2)

: Landing a rocket (version 3)

: Landing a rocket (version 4)

: Landing a rocket (version 5)

: Landing a rocket (version 6)

: Laws of image creation

: The DrRacket stepper

: A batch program

: How big-bang works

: A first interactive program

: From information to data, and back

: The completion of design step 5

: Testing in BSL

: The wish list for designing world programs

: Examples for a moving car program

: Recall from One Program, Many Definitions

: Conditional functions and special enumerations

: UFO, descending

: Rendering with a status line

: Rendering with a status line, revised

: Launching a countdown and a liftoff

: How a traffic light functions

: A symbolic traffic light

: A transition diagram for a door with an automatic closer

: A Cartesian point

: The universe of data

: Adding structure to a universe

: Rendering space invader game states, by example

: The complete rendering function

: Rendering game states again

: Rendering the space invader games, with tanks

: Two ways of writing a data definition for FSMs

: A finite state machine as a diagram

: The universe of BSL data

: BSL core vocabulary

: BSL core grammar

: Syntactic naming conventions

: Replacing equals by equals

: BSL, full grammar

: Building a list

: Drawing a list

: List primitives

: Searching a list

: Computing with lists, step 1

: Computing with lists, step 2

: Computing with lists, step 3

: Arrows for self-references in data definitions and templates

: How to translate a data definition into a template

: How to turn a template into a function definition

: Turning a template into a function, the table method

: Tabulating arguments, intermediate values, and results

: Designing a function for self-referential data

: A table for

: A table for sorted>?

: Creating a list of copies

: Random attacks

: A list-based world program

: Two data representations for sets

: Functions for the two data representations of sets

: Computing the wages of all employees

: Computing the wages from work records

: Things take time

: Reading files

: Counting the words on a line

: Encoding strings

: Transpose a matrix

: Tabulating for

: Sorting lists of numbers

: Drawing a polygon

: Reading a dictionary

: Representing iTunes tracks as structures (the structures)

: Representing iTunes tracks as structures (the functions)

: Representing iTunes tracks as lists

: Finding alternative words

: Playing Worm

: Random placement of food

: Simple Tetris

: Representing and interpreting finite state machines in general

: A simplistic HTML generator

: A data representation based on nested lists

: A web page generated with BSL+

: Two similar functions

: Two similar functions, revisited

: Two more similar functions

: Finding the and in a list of numbers

: A pair of similar functions

: The same two similar functions, abstracted

: The similar functions for exercise 250

: The similar functions for exercise 251

: The similar functions for exercise 252

: ISLs abstract functions for list processing (1)

: ISLs abstract functions for list processing (2)

: Creating a program with abstractions

: Organizing a function with local

: Organizing interconnected function definitions with local

: Using local may improve performance

: A function on inventories, see exercise 261

: Power from local function definitions

: A general sorting function

: A curried predicate for checking the ordering of a list

: Drawing lexical scope contours for exercise 301

: Drawing lexical scope contours for exercise 301 (version 2)

: ISL+ extended with loops

: A compact definition of arrangements with for*/list

: Constructing sequences of natural numbers

: ISL+ match expressions

: A family tree

: A data representation of the sample family tree

: Finding a blue-eyed child in an ancestor tree

: Calculating with trees

: Finding a blue-eyed child in a family forest

: A template for S-expressions

: A program for S-expressions

: Arrows for nests of data definitions and templates

: A binary search tree and a binary tree

: A program to be simplified

: Program simplification, step 1

: Program simplification, steps 2 and 3

: A sample directory tree

: Representing BSL expressions in BSL

: From S-expr to BSL-expr

: The complete definition of xexpr-attr

: A realistic data representation of XML enumerations

: Refining functions to match refinements of data definitions

: Finite state machines, revisited

: Interpreting a DSL program

: A file with a machine configuration

: Reading X-expressions

: Web data as an event

: Indexing into a list

: Indexing into a list, simplified

: A simple hangman game

: Databases as tables

: Databases as ISL+ data

: The result of systematic expression hoisting

: A template for project

: Database projection

: Database projection

: Functions for inexact representations

: A Janus-faced series of inexact numbers

: The graph of oscillate

: Useless templates for breaking up strings into chunks

: Generative recursion

: A graphical illustration of the quick-sort algorithm

: The quick-sort algorithm

: The table-based guessing approach for combining solutions

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «How to Design Programs: An Introduction to Programming and Computing»

Look at similar books to How to Design Programs: An Introduction to Programming and Computing. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «How to Design Programs: An Introduction to Programming and Computing»

Discussion, reviews of the book How to Design Programs: An Introduction to Programming and Computing and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.