How to design programs : an introduction to programming and computing /

Felleisen, Matthias

How to design programs : an introduction to programming and computing / Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. - Second edition. - Cambridge, MA : The MIT Press, [2018], c2018. - xxvi, 765 pages : illustrations ; 23 cm

Revised edition of: How to design programs / Matthias Felleisen ... [et al.]. 2001.

Includes bibliographical references and index.

Preface -- Prologue: how to program -- I Fixed-size data -- 1 Arithmetic -- 2 Functions and programs -- 3 How to design programs -- 4 Intervals, enumerations, and itemizations -- 5 Adding structure -- 6 Itemizations and structures -- 7 Summary -- Intermezzo 1: Beginning student language -- II arbitrarily large data -- 8 Lists -- 9 Designing with self-referential data definitions -- More on lists -- Design by composition -- Projects: lists -- Summary -- Intermezzo 2: Qoute, unqoute -- III Abstraction -- 14 Similarities everywhere -- 15 Designing abstractions -- 16 Using abstractions -- 17 Nameless functions -- 18 Summary -- Intermezzo 3: Scope and abstraction -- IV Intertwined data -- 19 Poetry of S-expressions -- 20 Iterative refinement -- 21 Refining interpreters -- 22 Project: The Commerce of XML -- 23 Simultaneous processing -- 24 Summary -- Intermezzo 4 The nature of numbers -- V Generative recursion -- 25 Non-standard recursion -- 26 Designing algorithms -- 27 Variations on the theme -- 28 Mathematical examples -- 29 Algorithms that backtrack -- 30 Summary.

"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."--Back cover.

9780262534802 (pbk. : alk. paper)

2017018384


Computer programming
Electronic data processing

QA76.6 / F33 2018
Copyright © 2023. Cavite State University | Koha 23.05