Купить бумажную книгу и читать
По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".
Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.
Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.
Автор:Felleisen M., Findler R.B., Flatt M., Krishnamurthi S.
Название: How to Design Programs. An Introduction to Computing and Programming
Издательство: The MIT Press
Год: 2002
Формат: pdf
Язык:Английский
Размер: 6.35 MB
Серьёзная книга на английском языке о программировании, которая не просто учит какому-нибудь языку программирования, а рассматривает более общие вопросы программирования. Например, как наилучшим образом решить ту или иную задачу, когда вариантов исполнения может быть множество, но важно выбрать именно оптимальный вариант. Так же подробно рассматривается много фундаментальных вопросов, причём, судя по просмотру, книга практически не \"грузит\" математическим формализмом.
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.
Contents
Preface
Why Everyone Should Learn to Program
Design Recipes
The Choice of Scheme and DrScheme
The Parts of the Book
Acknowledgments
I Processing Simple Forms of Data
1 Students, Teachers, and Computers
2 Numbers, Expressions, Simple Programs
3 Programs are Function Plus Variable Definitions
4 Conditional Expressions and Functions
5 Symbolic Information
6 Compound Data, Part 1: Structures
7 The Varieties of Data
8 Intermezzo 1: Syntax and Semantics
II Processing Arbitrarily Large Data
9 Compound Data, Part 2: Lists
10 More on Processing Lists
11 Natural Numbers
12 Composing Functions, Revisited Again
13 Intermezzo 2: List Abbreviations
III More on Processing Arbitrarily Large Data
14 More Self-referential Data Definitions
15 Mutually Referential Data Definitions
16 Development through Iterative Refinement
17 Processing Two Complex Pieces of Data
18 Intermezzo 3: Local Definitions and Lexical Scope
IV Abstracting Designs
19 Similarities in Definitions
20 Functions are Values
21 Designing Abstractions from Examples
22 Designing Abstractions with First-Class Functions
23 Mathematical Examples
24 Intermezzo 4: Defining Functions on the Fly
V Generative Recursion
25 A New Form of Recursion
26 Designing Algorithms
27 Variations on a Theme
28 Algorithms that Backtrack
29 Intermezzo 5: The Cost of Computing and Vectors
VI Accumulating Knowledge
30 The Loss of Knowledge
31 Designing Accumulator-Style Functions
32 More Uses of Accumulation
33 Intermezzo 6: The Nature of Inexact Numbers
VII Changing the State of Variables
34 Memory for Functions
35 Assignment to Variables
36 Designing Functions with Memory
37 Examples of Memory Usage
38 Intermezzo 7: The Final Syntax and Semantics
VIII Changing Compound Values
39 Encapsulation
40 Mutable Structures
41 Designing Functions that Change Structures
42 Equality
43 Changing Structures, Vectors, and Objects
Купить бумажную книгу или электронную версию книги и скачать
По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".
Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.
Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.
Дата создания страницы: