Psychology of computer programming

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This book has only one major purpose-to trigger the beginning of a new field of study: computer programming as a human activity, or, in short, the psychology of computer programming. All other goals are subservient to that one. For instance, I have tried to make the book interesting and nontechnical, insofar as is possible, so as to encourage the greatest number of people to read it: not just programmers, but programming managers and others connected with programming in the many ways we are connected with programming these days. What I am trying to accomplish is to have the reader say, upon finishing the book, "Yes, programming is not just a matter of hardware and software. I shall have to look at things in a new way from now on."

Author(s): Weinberg G.M
Series: Computer Science Series
Publisher: Van Nostrand Reinhold
Year: 1971

Language: English
Commentary: подчистил скан, обрезал поля
Pages: 299
City: New York

Preface vii
Suggestions for Course Use ix

I. PROGRAMMING AS HUMAN PERFORMANCE

1 Reading Programs 5
An example 6
Machine limitations 7
Language limitations 9
Programmer limitations 10
Historical traces 11
Specifications 12
Summary 13
Questions 13
Bibliography 14

2 What Makes a Good Program? 15
Specifications 17
Schedule 19
Adaptability 20
Efficiency 22
Summary 25
Questions 25
Bibliography 26

3 How Can We Study
Programming? 27
Introspection 28
Observation 30
Experiment 32
Psychological measurement 35
Using behavioral science data 38
Summary 39
Questions 40
Bibliography 41

II. PROGRAMMING AS A SOCIAL ACTIVITY

4 The Programming Group 47
Formal and informal organization 47
Physical environment and social
organization 50
Error and ego 52
Egoless programming 56
Creating and maintaining the programming
environment 60
Summary 64
Questions 64
Bibliography 65

5 The Programming Team 67
How a team forms 68
Establishing and accepting goals 72
Team leadership and team leaders 78
The team in crisis 85
Summary 91
Questions 92
Bibliography 93

6 The Programming Project 95
Stability through change 96
Measuring performance 100
Project structure 106
Common social problems of large projects 109
Summary 112
Questions 113
Bibliography 115
III. PROGRAMMING AS AN
INDIVIDUAL ACTIVITY

7 Variations in the Programming
Task 121
Professional versus amateur programming 122
What the programmer is trying to do 126
Stages of programming work 132
Summary 137
Questions 138
Bibliography 139

8 Personality Factors 141
Personality changes 143
Personality invariants 145
Critical personality traits 148
Personality testing 153
Personality testing of programmers 156
Summary 158
Questions 158
Bibliography 159

9 Intelligence, or Problem-Solving
Ability 161
Psychological set 162
Some dimensions of problem solving 164
Facets of programming intelligence 166
Aptitude tests 170
Aptitude tests for programming 171
Summary 176
Questions 177
Bibliography 177

10 Motivation, Training, and
Experience 180
Motivation 181
Training, schooling, and education 184
Forces against learning 188
How to learn programming 193
Summary 198
Questions 198
Bibliography 199

IV. PROGRAMMING TOOLS

11 Programming Languages 205
Programming language and natural language 206
Programming language design 211
Summary 214
Questions 214
Bibliography 215

12 Some Principles for
Programming Language Design 217
Uniformity 218
Compactness 224
Locality and linearity 229
Tradition and innovation 232
Special-purpose, multipurpose, and toy languages 237
Summary 241
Questions 242
Bibliography 243

13 Other Programming Tools 246
Program testing tools 247
Operating systems 251
Time sharing versus batch 259
Documentation 262
Summary 270
Questions 270
Bibliography 272

V. EPILOGUE
Index 281