How to Design Programs. An Introduction to Computing and Programming

Купить бумажную книгу и читать

Купить бумажную книгу

По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".

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

Дата создания страницы: