Advances
in COMPUTERS VOLUME 18
Contributors to Thls Volume
S. E. GOODMAN M. H. HALSTEAD MONROEM. NEWBORN AZRIELROS...
32 downloads
1051 Views
16MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Advances
in COMPUTERS VOLUME 18
Contributors to Thls Volume
S. E. GOODMAN M. H. HALSTEAD MONROEM. NEWBORN AZRIELROSENFELD PATRICK SUPPES STUARTZWEBEN
Advances in
COMPUTERS EDITED BY
MARSHALL C. YOVITS Department of Computer and Information Science Ohio State University Columbus, Ohio
VOLUME 18
ACADEMIC PRESS w New York
Sen Francisco w London-1979
A Subsidiary of Harcourt Brace Jovanovich. Publishers
COPYRIGHT @ 1979, BY ACADEMIC PRESS, INC. ALL RIGHTS RESERVED. NO PART O F THIS PUBLICATION MAY BE REPRODUCED OR TRANSMITTED IN ANY FORM OR BY ANY MEANS, ELECTRONIC OR MECHANICAL, INCLUDING PHOTOCOPY, RECORDING, OR ANY INFORMATION STORAGE AND RETRIEVAL SYSTEM, WITHOUT PERMISSION IN WRITING FROM THE PUBLISHER.
ACADEMIC PRESS,INC.
111 Fifth Avenue. New York. New York 10003
United Kingdom Editiori published by ACADEMIC PRESS, INC. (LONDON) LTD. 24/28 Oval Road, London N W 1 7 D X
LIBRARY OF CONGRESS CATALOG CARD NUMBER: 59-15761 ISBN 0-12-0121 18-2 PRINTED
IN THE UNITED STATES OF AMERICA
79808182
9 X 7 h S 4 3 2 1
Contents
CONTRIBUTORS . . . . . . . . . . . . . . . . . . . . . . . PREFACE . . . . . . . . . . . . . . . . . . . . . . . . .
ix xi
Image Processing and Recognition Azriel Rosenfeld
1 . Introduction . . . . . . . . . . . . . . . . . . . . . . 2 . Digitization . . . . . . . . . . . . . . . . . . . . . . 3 . Coding and Approximation . . . . . . . . . . . . . . . 4 . Enhancement. Restoration. and Reconstruction . . . . . . 5 . Segmentation . . . . . . . . . . . . . . . . . . . . . . 6 . Representation . . . . . . . . . . . . . . . . . . . . . 7 . Description . . . . . . . . . . . . . . . . . . . . . . 8. Concluding Remarks . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . .
2 3 8 16 28 40 48 55 55
Recent Progress in Computer Chess
.
Monroe M Newborn
1 . Introduction . . . . . . . . . . . . . . . . . 2 . After Stockholm . . . . . . . . . . . . . . . 3 . Tree-Searching Techniques (Modifications to the Minimax Algorithm) . . . . . . . . . . . . . . 4 . Chess-Specific Information in Chess Programs . . 5 . Endgame Play . . . . . . . . . . . . . . . . 6. Speed Chess . . . . . . . . . . . . . . . . . 7 . The Microcomputer Revolution . . . . . . . . 8 . Final Observations and the Future . . . . . . . References . . . . . . . . . . . . . . . . . . V
. . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
59 62
. 92 . 99 . 100 . 106 . 110 . 113 . 114
vi
CONTENTS
Advances In Software Sclence
. .
M H Haletoad
1. Introduction . . . . . . . . . . . . . . . 2 . Basic Metrics . . . . . . . . . . . . . . 3.Volume . . . . . . . . . . . . . . . . . 4 . Potential Volume . . . . . . . . . . . . . 5 . Implementation Level . . . . . . . . . . 6. Language Level . . . . . . . . . . . . . 7. The Vocabulary-Length Equation . . . . 8. The Mental Effort Hypothesis . . . . . . 9. Extension to “Lines of Code” . . . . . . 10. Programming Rates versus Project Size . . 11. Clarity . . . . . . . . . . . . . . . . . . 12. Error Rates . . . . . . . . . . . . . . . 13. Measurement Techniques . . . . . . . . 14. The Rank-Ordered Frequency of Operators 15 . The Relation between r), and q2 . . . . . 16. The Use of q2* in Prediction . . . . . . . 17. Grading Student Programs . . . . . . . . I8 . Semantic Partitioning . . . . . . . . . . 19. Technical English . . . . . . . . . . . . . 20 . Learning and Mastery . . . . . . . . . . 21 . Text File Compression . . . . . . . . . . 22 . Top-Down Design in Prose . . . . . . . . 23 . Conclusions . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
i19 120 122 122 123 125 126 129 130 132 133 136 141 143 146 148 150 153
154 158
161 162 166 168
Current Trends In Computer-Asdsted Instructlon Patrkk Supper
1. Introduction . . . . . . . . . . . . . . . . 2 . CAI in Elementary and Secondary Education 3. CAI in Postsecondary Education . . . . . . 4 . Current Research . . . . . . . . . . . . . . 5 . The Future . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . .
. . . . . . 173 . . . . . . . 175 . . . . . . . 185
. . . . . . . . . . . . . . . . . .
199 222 225
CONTENTS
vi i
Software in the Soviet Union: Progress and Problems
. .
S E Goodman
1 . Introduction . . . . . . . . . . . . . . . . . . . . . . .
2. 3. 4. 5.
A Survey of Soviet Software . . . . Systemic Factors . . . . . . . . . . Software Technology Transfer . . . ASummary . . . . . . . . . . . . References . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
231
. . . . . 233 . . . . 249 . . . . . 268 . . . . 278 . . . . 281
INDEX . . . . . . . . . . . . . . . . . . . . . . 289 AUTHOR INDEX . . . . . . . . . . . . . . . . . . . . . . 295 SUBJECT CONTENTS OF PREVIOUS VOLUMES . . . . . . . . . . . . . . 303
This Page Intentionally Left Blank
Contrlbutors to Volume 18 Numbers in parentheses indicate the pages on which the authors' contributions begin.
SEYMOUR E. GOODMAN ,* Woodrow Wilson School of Public and Internritional Affairs, Princeton University, Princeton, New Jersey 08540 (231) M. H. HALSTEAD,** Department of Computer Sciences, Purdue University, West Lafayette, Indiana 47907 (119) MONROEM . NEWBORN, School of Computer Science, McGill University, Montreal, Quebec, Canada H3A 2K6 (59) AZRIELROSENFELD, Computer Science Center, University of Maryland, College Park, Maryland 20742 ( I ) PATRICK SUPPES, Institute for Mathematical Studies in the Sociril Sciences, Stanford University, Stanford, California 94305 ( I 73) STUARTZWEBEN , Department of Computer and Information Science, Ohio State University, Columbus, Ohio 43210 (119)
* Present address: Department of Applied Mathematics and Computer Science, University of Virginia, Charlottesville, Virginia 22903. ** Deceased. The contribution was further edited by Stuart Zweben. ix
This Page Intentionally Left Blank
Preface
Volume 18 ofAdvances in Computers continues to treat in some depth a number of dynamic and significant areas of current interest in the computer field, thus continuing a long and unbroken series that began in 1%0. In each of the volumes that have appeared thus far, important, topical areas having long-range implications in the computer field have been treated. This volume is no exception. Appearing here are articles on software, considered both as a science and as a management concern in the Soviet Union, as well as articles describing a number of applications of computer science including image processing and recognition, computer chess, and computer-assisted instruction. Computers are being used more extensively to process and analyze pictures. This is, in fact, one of the more important computer applications. The subjects of image processing (improving the appearance of a picture) and image recognition(pr0viding a description of the picture) are treated by Azriel Rosenfeld in the first article. Image processing and analysis differ from computer graphics in that pictures are input in the former rather than described in the latter. Professor Rosenfeld describes many of the ideas and methods used in the field and reviews the basic techniques involved. Rosenfeld concludes that the field has a broad variety of applications in such fields as astronomy, character recognition, industrial automation, medicine, remote sensing, and many others. He expects a continued growth both in the scope and the number of practical applications. In his article on computer chess, Monroe Newborn summarizes the history of chess playing by computer, an idea that has fascinated man for hundreds of years. In the late 1950s rudimentary working chess-playing programs were developed based on the ideas of Shannon and Turing. Progress since then has been rapid due to both hardware and software improvements and interest has mushroomed. Newborn particularly concentrates on the dynamic events of the past few years. He discusses and summarizes various tree-searching techniques and concludes with a discussion of recent microcomputer chess. He points out that present programs are playing essentially at the Expert level and predictsconservatively-that by 1984 they will be playing at the Master level and at the Grandmaster by 1988. Software science as described by Maurice Halstead is a foundation for software engineering but is not synonymous with it. It is an intellectually xi
xii
PREFACE
exciting discipline currently undergoing rapid development. He defines “software” as any communication that appears in symbolic form in conformance with the grammatical rules of a language. He furthermore goes on in his article to define a science. Professor Halstead presents a summary and overview of the present state of software science. He encourages the practitioner to engage in actual personal experimentation to convince himself of the science’s validity and indicates that there are no theorems and perhaps will never be any. However, he points out that a major attribute of software science is a total and complete lack of arbitrary constants or unknown coefficients among its basic equations which, furthermore, are characterized by utter simplicity. He concludes by stating that natural laws govern language and its use far more strictly than has generally been recognized. Patrick Suppes surveys current activities in computer-assisted instruction (CAI) and emphasizes the past five years. He discusses elementary and secondary education as well as postsecondary education and summarizes current research. Suppes emphasizes those activities requiring increasingly sophisticated programs, and concludes by forecasting the main trends in computer-assisted instruction. He expects that current hardware improvement and economics will have a major effect on CAI and predicts that by 1990 CAI will have widespread use in schools and colleges in the United States. By the year 2000, Professor Suppes predicts, it is reasonable to expect a substantial use of home CAI. Videodisks particularly will have a major effect on the field. He concludes by stating that by the year 2020, or shortly thereafter, CAI courses should have the features that Socrates thought so desirable long ago. A computer tutor will be able to converse with the individual student at great length. In the final article, Seymour Goodman treats a subject of great interest and importance about which most of us in the United States have only passing knowledge. In his discussion of software in the Soviet Union, Professor Goodman points out that it is only within the past decade that the Soviets have actually committed themselves to the production and use of complex computer systems on a scale large enough to pervade the national economy. He points out that the Soviets have made substantial progress in removing limitations due to hardware availability but have not yet made much progress in overcoming software development problems. He expects, as a consequence, that they will continue to borrow from foreign software technology. Professor Goodman states that economic and political factors are of considerable importance in Soviet software development. Soviet software development has followed the United States technical pattern but has differed greatly in time scale. He claims that major changes in the system will be necessary if the Soviet software
PREFACE
xiii
industry is to function effectively, but it is not clear to what extent such reforms will be allowed to take place. I am saddened by the sudden and unexpected loss of a good friend and a valued colleague, Maurice Halstead. Shortly after he sent me the final version of his article, “Advances in Software Science,” Maury was suddenly and fatally stricken. We all miss him both as a friend and as a leader in our profession. Software science, largely due to his productive research and that of his colleagues and students, has become an important and a rapidly growing area of interest with considerable application. Professor Halstead’s article is one of the last major contributions he had written. I am indebted to his colleague, Stuart H. Zweben of Ohio State University, who undertook the responsibility for the detailed editing of this article. It is my pleasure to thank the contributors of this volume. They have given extensively of their time and energy and thus have made this work an important and timely contribution to their professions. This volume continues the tradition established for Advcrnces in Computers of providing authoritative summaries of important topics that reflect the dynamic growth in the field of computer and information science and in its applications. I fully expect that in spite of its currency (or perhaps because of it), the volume will be of long-term interest and value. Editing this volume has been a rewarding experience. MARSHALL C. YOVITS
This Page Intentionally Left Blank
Image Processing and Recognition AZRIEL ROSENFELD Computer Science Center University of Maryland College Park. Maryland
1.
2.
3.
4.
5.
6.
7.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Digitization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Quantization . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Bibliographical Notes . . . . . . . . . . . . . . . . . . . . . . . Coding and Approximation . . . . . . . . . . . . . . . . . . . . . . 3.1 Exactcoding . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Differencing . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Other Coding Schemes . . . . . . . . . . . . . . . . . . . . . . 3.6 Bibliographical Notes . . . . . . . . . . . . . . . . . . . . . . . Enhancement, Restoration. and Reconstruction . . . . . . . . . . . . 4.1 Grayscale Modification . . . . . . . . . . . . . . . . . . . . . . 4.2 Geometric Transformations . . . . . . . . . . . . . . . . . . . . 4.3 Noise Cleaning . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Deblurring . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Reconstruction from Projections . . . . . . . . . . . . . . . . . 4.6 Bibliographical Notes . . . . . . . . . . . . . . . . . . . . . . . Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . I Pixel Classification . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Edge Detection . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Pattern Matching . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Sequential Segmentation . . . . . . . . . . . . . . . . . . . . . 5.5 Fuzzy Segmentation . . . . . . . . . . . . . . . . . . . . . . . 5.6 Bibliographical Notes . . . . . . . . . . . . . . . . . . . . . . . . Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Connectedness . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Representation by Runs; Component Labeling and Counting . . . . 6.3 Representation by Border Curves; Border Following, Chain Coding . 6.4 Representation by Skeletons; Thinning . . . . . . . . . . . . . . . 6.5 Segmentation of Curves . . . . . . . . . . . . . . . . . . . . . 6.6 Bibliographical Notes . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Geometrical Properties . . . . . . . . . . . . . . . . . . . . 7.2 Gray-Level-Dependent Properties . . . . . . . . . . . . . . . .
2 3 4 6 7 8 9 10 12 14 15
16 16 17
.
18
19 23 26 27 28 29 33 34 37 38 40
.
. . . . .
40
41 42 43 45 46 48
.
. . . .
48
49 51
1
.
ADVANCES IN COMPUTERS. VOL . 18
Copyright @ 1979 by Academic Pren Inc . All rights of reproduction in any form reserved. ISBN n-12-n1211x-2
2
8.
AZRlE L ROSEN FE LD 7.3 Relations and Models . . . . 7.4 Bibliographical Notes . . . . Concluding Remarks . . . . . . References . . . . . . . . . . .
. . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . .
54 55 55 55
1. Introduction
Computers are being increasingly used to process and analyze pictures. This chapter reviews some of the basic techniques that are used for image processing and pictorial pattern recognition by digital computer. (We will use the words image and picture interchangeably.) The material is presented from a technique-oriented standpoint; applications are not discussed. A picture is defined by specifying how its brightness (or color) varies from point to point. (We will deal almost entirely with black-and-white pictures in this paper.) Before a picture can be processed, it must be converted into a discrete array of numbers representing these brightness values, or shades of gray, at a grid of points. This process of digitization will be discussed further in Section 2. The resulting array is called adigitnl picrure, its elements are called points or pixels (short for “picture elements”), and their values are called gray levels. In order to represent adequately the original picture (in redisplay), the array of pixels must generally be quite large (about 500 x 500, for an ordinary television picture), and there must also be a relatively large number of distinct gray levels (on the order of 100). Image coding deals with methods of reducing this large amount of information without sacrificing the ability to reproduce the original picture, at least to a good approximation (see Section 3). One of the principal goals of image processing is to improve the appearance of the picture by increasing contrast, reducing blur, or removing noise. Methods of doing this come under the heading of image enhancement or image restoration. A related problem is that of reconstructing a picture from a set of projections; such image reconstruction techniques are used in radiology, for example, to display cross sections of the body derived from a set of x-ray images. These subjects are covered in Section 4.
In image processing, the input and output are both pictures (the output being, for example, an encoded or enhanced version of the input). In image recognition, the input is a picture, but the output is some type of description of the picture. Usually this involves decomposing the picture
IMAGE PROCESSING AND RECOGNITION
3
into parts (segmentation) and measuring properties of the parts (their sizes, shapes, colors, visual textures, etc.). Image recognition techniques will be reviewed in Sections 5-7; Section 5 discusses segmentation, Section 6 deals with representations of picture parts, and Section 7 treats property measurement. It should be pointed out that both image processing and analysis have pictures as input, in the form of arrays of gray levels. This distinguishes them from computer gruphics, in which the input is a description of a picture (e.g., a set of functions that define curves, regions, or patches, and possibly also other functions that define the brightness variations over these regions), and the output is a display of that picture. Computer graphics will not be discussed in this paper. We will also not cover picture processing hardware or software, or the processing of pictures by nondigital means (photographic, optical). Many image processing techniques involve advanced mathematical concepts. For example, some of the important approaches to image coding, enhancement, and description that will be reviewed in this paper make use of two-dimensional Fourier transforms. It will be assumed that the reader is familiar with these transforms and with the basic ideas of spatial frequency analysis and of convolution. On the other hand, we will not cover techniques that involve other types of transforms (WalshHadamard, Karhunen-Loeve, etc.), or that are based on modelling ensembles of images by stochastic processes. In general, mathematics will be avoided unless it is needed to define precisely or clarify a technique, and emphasis will be placed on methods whose definitions require little or no mathematics. This chapter can cover only a selection of the ideas and methods used in digital image processing and analysis. Its purpose is to give a nontechnical introduction to some of the basic techniques. Suggestions for further reading can be found in the bibliography at the end of the paper. References will be given at the end of sections in the text to textbook chapters and papers (most of them recent) where further information can be found about the techniques that are described or mentioned, including those that are beyond the scope of the present paper. Over 3000 additional references can be found in the bibliographies cited at the end of the paper. 2. Dlgltlzatlon
Digitization is the process of converting a real picture or scene into a discrete array of numbers. It involves
4
AZRIEL ROSENFELD
(a) sampling the brightness of the scene at a discrete grid of points, and (b) quantizing each measured brightness value so that it becomes one of a discrete set of “quantization levels.” In this section we discuss sampling and quantization as mathematical operations. Hardware devices for image sensing, sampling (sensor arrays, scanners, TV cameras), and quantizing (analog-to-digital converters) will not be treated, nor will devices for displaying and interacting with digital pictures . 2.1 Sampling
In general, any process of converting a picture into a discrete set of numbers can be regarded as “sampling,” but we will adopt the narrower definition given above. It should be pointed out, incidentally, that one cannot really measure scene brightness “at a point”; rather, one measures some sort of (weighted) average brightness over a small neighborhood of the point. The sample points are almost always assumed to be the points of a regular square (or sometimes hexagonal) grid. How densely spaced should the grid points be? If they are spaced too far apart, some of the information in the scene may be lost or misrepresented (aliased ). According to the sampling theorem, if the grid spacing is d , we can exactly reconstruct from the resulting samples all the spatial frequency components of the image whose frequencies (in cycles per unit distance) do not exceed 1/2d. Thus if we want to represent correctly a given spatial frequency in the sampled image, we should sample at least at twice that frequency. However, as we shall next see, if frequencies greater than 1/2d are also present, they can introduce spurious information that affects the lower frequencies. To illustrate the possible effects of undersampling, we shall consider two simple one-dimensional examples. The function sin x has period 2 n , so that its spatial frequency is 1/2m cycles per unit distance. Suppose that we sample it at pointsx = 0, 3m/2,3m, %/2, tin, . . . , which are spaced 3 d 2 apart, i.e., further apart than the spacing required by the sampling theorem, which is m. The values of sinx at those points are 0, - 1,0, 1 , 0, - 1, 0, I . . . . These are just the values we would obtain if we sampled the function sin W 3 ) , which has period 6 r , at spacing 3 d 2 , which is twice as frequent as necessary. Thus when we undersample sinx, the values we get are the same as if we had oversampled sin @/3), a lower frequency that is not actually present. This phenomenon is called aliasing, since it involves one frequency appearing to be a different one. In two dimensions, not only the frequency but also its orientation can change. MoirP patterns
IMAGE PROCESSING AND RECOGNITION
5
FIG.1. Aliasing. When the dot pattern (a) is superimposed on the bar pattern (b), with the latter rotated slightly clockwise, the result is as shown in (c); a lower frequency, rotated counterclockwise, appears to be present. Here the blank spaces in the dot pattern act as sampling points on the bar pattern, but their spatial frequency is not high enough, so that aliasing results. From Legault, 1973.
are an everyday example of aliasing (usually involving square waves rather than sine waves); an example is shown in Fig. 1. As another example of the effects of undersampling, suppose that instead of sampling the values of sinx at single points (Le., taking averages over very small neighborhoods of those points), we measure the average values of sinx over intervals of length 37r, which is larger than the period of sin x. When such an interval is centered at a peak of sinx, say at d 2 , it extends from --P to 27r, and includes two valleys and one peak of the sine
1'"
function; thus the average over this interval is sin x dx137r = - 2 1 3 ~ . -n On the other hand, when the interval is centered at a valley, it includes two peaks and a valley, so that the average is +2/3tr. Thus if we compute (overlapping) averages centered at the points 7r12, 3 ~ 1 2 ,5 ~ 1 2 ,. . . , which are the proper spacing apart for sampling sin x , we obtain the sequence of values -2/37r, 2/3-~,-2131~~. . . , which have the proper frequency but the wrong phase-they are negative when sin x is positive and vice versa. In other words, if we sample sin x at the correct frequency, but allow the samples (averages) to overlap, the values we obtain are essentially the same a s if we had sampled sin@ + -P) using nonoverlapping samples. This again illustrates the misleading results that can be obtained if improper sampling is performed. This particular phenomenon is known as "spurious resolution" since we are detecting sinx (with the wrong phase) even though our samples are too coarse. A square-wave example is shown in Fig. 2.
6
AZRlEL ROSENFELD
FIG. 2. Spurious resolution. The bars in (a) are 4 pixels wide. Parts (b)-(fl show the results of locally averaging (a) over a square neighborhood of each pixel of size 3 x 3 , 5 x 5 , 7 x 7, 9 x 9, and I I x 1 I , respectively. Note that in (e)-(0, where the averaging neighborhood size exceeds the period of the bar pattern, the bars are in the wrong positions [where the spaces were in (a)].
2.2 Quantization
Let z be a measured brightness value, and let z l < zz < . . . < zk be the desired quantization levels. Let i be the z j that lies closest to z . (If z is exactly midway betweenz, andz],,, we can arbitrarily say that i = z,.) We quantize z by replacing it by 2. The absolute difference )z - i 1 is called the quantization error associated with z. Ordinarily, the quantization levels zl, . . . , z k are assumed to be equally spaced. However, if the brightness values in the scene do not occur equally often, we can reduce the average quantization error by spacing the levels unequally. In fact, let Z i be the interval consisting of those points z that lie closest to zi; then if i i is small, the average quantization error associated with these zs is small, and vice versa. (It is straightforward to express this observation quantitatively; the details are omitted here.) Thus in a region of the gray-level range where zs occur frequently, we should space the quantization levels close together to insure a small average error. On the other hand, in a region where zs are rare, we can afford to space the levels far apart, even though this yields large quantization errors for such zs, since the error averaged over all zs will not be greatly increased by these rarely occurring large errors. The unequal spacing of quantization levels to reduce average quantization error is sometimes called tapered quantization. Using too few quantization levels results in objectionable “false contours,” which are especially conspicuous in regions where the gray level
IMAGE PROCESSING AND RECOGNITION
7
changes slowly (see also Section 3.2). This is illustrated in Fig. 3. Figure 4 shows the improvement that can be obtained by using tapered quantization. In digitizing color images, brightness values are obtained by scanning the image through three color filters (red, green, and blue), and each of these values is then quantized independently. Thus a digital color image is an array of triples of discrete values.
2.3 Bibliographical Notes Digitization is treated in Rosenfeld and Kak (1976, Chapter 4), and in Gonzalez and Wintz (1977, Chapter 2). A detailed discussion, also covering color images, can be found in Pratt (1978, Chapters 4 and 6). The two-
Fiti. 3. False contours, Parts (a)-(d) have 16, 8, 4. and 2 gray levels, respectively. Note the conspicuous gray level discontinuities in the background in parts (b) and (c).
8
AZRIEL ROSENFELD
FIG.4. Advantages of tapered quantization. Parts (a)-(d) are quantized into 16 equally spaced levels, 16 tapered levels, 4 equally spaced levels, and 4 tapered levels, respectively. From Huang, 1%5.
(or multi-) dimensional sampling theorem is due to Peterson and Middleton (1%2). Aliasing problems in image sampling are discussed in Mertz and Grey (1934); for a more recent treatment see Legault (1973). Nonuniform spacing of quantization levels to minimize quantization error is treated in Max (1960). 3. Coding and Approximation
The aim of image coding is to reduce the amount of information needed to specify a picture, or at least an acceptable approximation to the picture.
IMAGE PROCESSING AND RECOGNITION
9
Compact encoding schemes allow one to store pictures in less memory space, or to transmit them in less time (or at lower bandwidth). They can be used in television or facsimile transmission, provided that the receiver can be designed to incorporate a decoding capability. This section discusses several types of image coding techniques: (a) Exact techniques. These take advantage of the nonrandomness of images to devise codes that are, on the average, more compact than the original images, while still permitting exact reconstruction of the original. (b) Approximation techniques, which vary the fineness of sampling and quantization as a function of image content, so as to take advantage of the perceptual limitations of the human observer. (c) Diferencing and transform techniques. These convert the image into a modified form in which greater advantage can be taken of approaches (a)-( b) . Special coding methods, including schemes designed to handle binary images, time-varying images, etc., are also briefly discussed. Another class of approaches to image compression is based on piecewise approximation of the image gray levels by simple functions. Each piece of the image can thus be represented by a small amount of information (namely, the parameters of the approximating function for that piece). This approach will not be discussed further here. 3.1 Exact Coding This section describes several methods of representing images compactly by taking advantage of their nonrandomness to devise codes that, on the average, are more compact then the original image. Three such approaches are the following: (a) Shannon-F'uno-Hu$man Coding If the gray levels in an image do not all occur equally often, it i s possible (at least in principle) to compress the image by using short codes for the frequently occumng gray levels, and longer codes for the rarer ones. As a very simple example, suppose there are four levels, 0, 1 , 2, and 3, and their relative frequencies of occurrence are 3/4, 1/12, 1/12, and 1/12, respectively. If we represent the levels by binary numbers in the usual way (0 = 00, 1 = 01, 2 = 10, 3 = l l ) , each of them is a two-bit number, so that the number of bits needed per pixel is exactly 2. On the other hand, suppose that we use the codes 0, 10, 110, and 1 1 1 for 0, 1 , 2, and 3, respectively. Thus 3/4 of the pixels will require only one bit each; 1/12 will require two bits each; and 1/2 + .1/2 = Q will require three bits each. The average number of bits needed per pixel is thus ( 1 . 314) + (2 1/12) + (3 . 1/6) = 3/4 + 1/6 + 1/2 =
10
AZRl E L ROSENFE LD
1 5/12, which is less than the two bits per pixel needed for the ordinary binary number representation. In general, the more “biased” (i.e., unequal) the frequencies of occurrence of the two gray levels, the more compression can be achieved by this approach. (b) Run length coding Any image row consists of a succession of constant gray level runs, and the row is completely determined if we specify the sequence of lengths and gray levels of these runs. If the runs, on the average, are sufficiently long, this run length code representation is more compact than the original array representation. For example, suppose that there are 64 gray levels and that the rows are 512 pixels long. Thus the length of any run is between 1 and 512, and can be specified by a 9-bit number. Suppose there are r runs; then the run length code requires 6r bits to specify the gray levels of the runs and at most 9r bits to specify their lengths, a total of 1% bits, while the ordinary representation of the row as a string of 512 &bit numbers requires 3072 bits. Thus if 1% < 3072 (so that the average run length is greater than about 21), the run length code is more economical. (c) Contour coding Any image consists of a set of connected regions of constant gray level, and is completely determined if we specify the set of these regions. A region can be specified by its position and the chain code of its boundary (see Section 6.3). If there are sufficiently few regions, this contour code representation is more economical than the original array representation. For example, suppose that the image is 512 x 512 and has 64 gray levels, so that the array representation requires 3 . 219 bits. If there are r regions, each having a single boundary of average length I, then the contour code representation requires 6r bits to specify the regions’ gray levels, 18r bits to specify their positions, and 31r bits to specify their boundary chain codes, for a total of only 3(/ + 8)r bits; this may well be less than 3 219 (e.g., let l = 32, r = 40%). 3.2 Approximation
The methods described in Section 3.1 encode the original image without any loss of information; the image can be perfectly reconstructed from its code. On the other hand, the compression provided by these methods is relatively small except for images of special types (composed of relatively few regions of constant gray level, or having gray levels that occur very unequally often). In this and the following sections we discuss coding schemes that only approximately represent the image. Such schemes can yield high degrees of compression even if we require the approximation to resemble quite closely the original image.
IMAGE PROCESSING AND RECOGNITION
11
One of the key ideas that underlies image approximation techniques is that the fineness of sampling and quantization required to represent an image with sufficient faithfulness depends on the image content. In particular, sampling can be coarse in regions where the gray level varies slowly; and quantization can be coarse in regions where the gray level fluctuates rapidly. These observations are illustrated in Fig. 5. To illustrate the application of this idea to image coding, suppose that
FIG.5 . Trade-off between sampling and quantization. Parts (a) have 128 x 128 samples and 64 quantization levels; parts (b) have 256 x 256 samples and 16 quantization levels. The smaller number of quantization levels is more acceptable in the crowd scene than in the face; the lower sampling rate is more acceptable in the face than in the crowd. From Huang et ( I / . , 1%7.
12
A 2 RIE L ROS ENFE LD
we compute the Fourier transform of an image, and break up the transform into low-frequency and high-frequency parts. The low-frequency portion corresponds to an image with slowly varying gray level, so that it can be sampled coarsely, while the high-frequency portion can be quantized coarsely. We can then recombine the two portions to obtain a good approximation to the original image. A variety of image coding schemes based on this idea have been proposed. In the next two sections we discuss methods of transforming an image so as to take greater advantage of both the exact coding and approximation approaches. 3.3 Differencing
Suppose that we scan the points of an image in sequence (i.e., row by row, as in a TV scan), and use the gray value(s) of the preceding point(s) to predict the gray value of the current point by some type of extrapolation (linear, for example). Since abrupt changes in gray level are relatively rare in most classes of pictures, the errors in this prediction will usually be small. We shall now discuss how a prediction process of this sort can be used to facilitate image compression. Suppose, for concreteness, that we simply use the value z,,-~ of the preceding pixel in the scan as our prediction of the value zn of the current pixel. The error in this prediction is then simply the difference zn - z , - ~ . The image can be exactly reconstructed if we know the gray level z1 of the first pixel and the sequence of differences z Z - zl, z s - z2, . . . . Thus the sequence of differences can be regarded as a transformed version of the image. The difference sequence itself is not a compact “encoding” of the image. In fact, if the original gray levels are in the range [O,z], the differences are in the range [-z, z], so that an extra bit (a sign bit) is required to represent each difference value. However, the differences do provide a basis for compact encoding, for two reasons: (a) The differences occur very unequally; as pointed out earlier, small differences will be very common, while differences of large magnitude will be quite rare. Thus the Shannon-Fano-Huffman approach can be used to great advantage in exact encoding of the difference values. (b) When large differences do occur, the gray level is fluctuating rapidly; thus such differences can be quantized coarsely, so that fewer quantization levels are required to cover the range [-z, z].
IMAGE PROCESSING AND RECOGNITION
13
FIG.6 . Difference coding. Part (a) has 256 x 256 8-bit pixels. Parts (b)-(d) were reconstructed by summing the sequence of differences on each row, where the differences were quantized to 3 bits, 2 bits, and 1 bit, respectively.
A large number of “difference coding” schemes have been developed that take advantage of these properties of the gray level differences (or, more generally, prediction errors) in typical pictures. An example is shown in Fig. 6. The main disadvantage of such schemes is that errors (due to coarse quantization, or noise in the transmission, of the difference values) accumulate, since the image is reconstructed by cumulatively summing these values. To avoid this, the differencing process should be reinitiated frequently, by specifying the actual gray level of a pixel and then once again taking successive differences starting with that pixel.
14
AZ RI E L ROSE NFE LD
3.4 Transformations
Any invertible transform of an image can serve as the basis for a coding scheme. The general idea is as follows: We take the transform Tfof the given image f; we encode (andlor approEimate) TJ obtaining Tk say; and we apply the inverse transform T-’ to 2-f when we want to reconstruct f. Evidently, the usefulness of this trcrnsforin coding approach depends on Tf being highly “compressible.” As an example of this approach, let T be the Fourier transform. In TJ the magnitudes of the different Fourier coefficients have widely different ranges (very high for low frequencies, very low for high ones). Thus we can quantize each coefficient individually, using a number of quantization levels appropriate to its range (and we can even ignore some coefficients completely, if their ranges are sufficiently small). It should also be noted that when we quantize the high-frequency coefficients coarsely, we are in effect coarsely quantizing the parts of the picture where the gray level is fluctuating rapidly, and this is consistent with the remarks on approximation made earlier. This method of coding in the Fourier transform domain is illustrated in Fig. 7. Coding schemes of this sort have been developed for a variety of image transforms. They have the advantage that when errors (due to coarse quantization or noise) occur in a particular coefficient, their effects are distributed over the entire image when it is reconstructed using the inverse transform; thus these effects will tend to be less conspicuous than if
Fic,. 7. Fourier transform coding. Figure 6a was divided into 256 blocks of 16 x 16 pixels. In (a). each block has been reconstructed from the first 128 of its 256 Fourier coefficients; in (b), only 64 coefficients per block were used. From Wintz. 1972.
IMAGE PROCESSING AND RECOGNITION
15
they were concentrated at particular locations in the image. The principal disadvantage of transform coding is that the inverse transform process used to reconstruct the image is relatively complex (as compared to difference coding, where the reconstruction involves simple cumulative summing). 3.5 Other Coding Schemes A wide variety of other image coding schemes have been developed. Some of these are applicable to arbitrary images, while others are designed for special classes of images (e.g., binary, black and white only, with no intermediate gray levels) or for special situations (e.g., sequences of images, as in live TV). In this section, a number of such schemes will be briefly mentioned.
(a) Dirhev coding Coarse quantization becomes more acceptable if we add a pseudorandom “noise” pattern, of amplitude about one quantization step, to the image before quantizing it, and then subtract the same pattern from the image before displaying it. This method is illustrated in Fig. 8. A variety of related “ordered dither” schemes have been developed that give the effect of an increased number of gray levels. (b) Coding of binary images Many of the standard approaches to image coding (e.g., Shannon-Fano-Huffman, coarse quantization, difference or transform coding) are not useful for two-valued images. (Run length and contour coding, on the other hand, should be especially useful, since binary images should consist of relatively few runs or connected
FIG.8. Use of pseudorandom “noise” to break up false contours. From Huang, 1965. The quantization is to 8 levels.
AZRlE L ROSENFELD
16
regions.) In addition, a variety of specialized coding schemes have been developed for binary images. Such schemes can also be applied to the “bit planes” representing specific bits in the gray level values of a general image. (c) Interfrcime coding In sequence of images of a scene taken at closely spaced time intervals, changes from one image to the next will be relatively limited. One can thus use the preceding image(s) to predict the gray levels of the current image, and encode only the differences between the predicted and actual values (compare our discussion of difference coding in Section 3.3). Of course, one can also use combinations of coding schemes, or adaptive techniques in which different schemes are used for different types of images or regions. 3.6 Bibliographical Notes
Image coding is covered in Rosenfeld and Kak (1976, Chapter 5 ) , Gonzalez and Wintz (1977, Chapter 6), and in considerably greater detail in Pratt (1978, Chapters 21-24 and Appendix 3). Piecewise approximation techniques are treated in Pavlidis (1977, especially Chapters 2 and 5). The literature on image coding is quite large; a 1971 bibliography (Wilkins and Wintz, 1971) lists about 600 references. Recent review papers have dealt with adaptive image coding techniques (Habibi, 1977); binary image coding (Huang, 1977); and color image coding (Limb et ul., 1977).
4. Enhancement, Restoration, and Reconstruction
The goal of image enhancement is to improve the appearance and usefulness of an image by, e.g., increasing its contrast or decreasing its blurredness or noisiness. Related to enhancement are methods of deriving a useful image from a given set of images; an important example is the “reconstruction” of cross sections of an object by analyzing a set of projections of that object as seen from various directions. This section discusses several types of image enhancement (and reconstruction) techniques: (a) Grayscale modification, e.g., for contrast stretching; (b) Geometric transformation, for distortion correction; (c) Noise cleaning;
IMAGE PROCESSING AND RECOGNITION
17
(d) Deblumng; “image restoration”’; and (e) Reconstruction from projections. These will be treated in the following subsections. The measurement of image quality will not be covered here. 4.1 Grayscale Modification
An “underexposed” image consists of gray levels that occupy only a portion of the grayscale. The appearance of such an image can be improved by spreading its gray levels apart. Of course, if the image is already quantized, this does not introduce any new information. However, it should be pointed out that (depending on the type of detail present in an image) adjacent gray levels are usually not distinguishable from one another when the image is displayed. Spreading the levels apart makes them distinguishable and thus makes the existing information visible. Even when the image occupies the entire grayscale, one can still stretch its contrast in some parts of the grayscale at the cost of reducing contrast in other parts. This is effective if the gray levels at the ends of the grayscale are relatively rare (as is usually the case), or if the information of interest is represented primarily by gray levels in the stretched range. In fact, if the grayscale is not equally populated, one can stretch the contrast in the heavily populated part(s) while compressing it in the sparsely populated parts(s); this has the effect of stretching contrast for most of the image, as illustrated in Fig. 9. The same effect is also achieved by remapping the image gray levels in such a way that each of the new levels occurs equally often. This “histogram flattening” (or equalization) technique is used both for image enhancement and for standardization of an image’s gray level distribution; it is illustrated in Fig. 10. Such operations can also be done locally by modifying the gray level of each point based on the gray level distribution in a neighborhood of that point. Since a person can distinguish many more colors than he can shades of gray, another useful method of “contrast enhancement” is to map the gray levels into colors; this technique is known as pseudocolor enhancement. Remapping of the grayscale (into itself) can also be used to correct arbitrary distortions to which an image may have been subjected. Another image enhancement task that involves gray level modification is the correction of images that have been unevenly exposed (due to I The term “restoration” is used to denote enhancement processes that attempt to estimate and counteract specific degradations to which an image has been subjected. Such processes generally have complex mathematical definitions.
18
AZRIEL ROSENFELD
Fic. 9. Contrast stretching. The middle third ofthe grayscale of (a) has been stretched by a factor of 2, while the upper and lower thirds have been compressed by a factor of 2.
optical vignetting, unequal sensitivity of the sensor(s), etc.). If the nature of the uneven exposure is known, it can in principle be corrected by applying an appropriate gray level adjustment to each point of the image. The nature of the uneven exposure can be determined using images of known test objects such as grayscales. 4.2 Geometric Transformations A geometric transformation is defined by a pair of functions x ' = 4(x, y ) , y ' = I,&, y ) that map the old coordinates (x, y ) into the new ones
FIG. 10. Histogram flattening. In Fig. 9a, the grayscale has been transformed so that each gray level occurs equally often.
IMAGE PROCESSING AND RECOGNITION
19
(x’, y’). If we want to perform such a transformation on a digital picture [so that the Cr. y ) s are points of a discrete grid], the difficulty arises that x ’ and y’ are in general not grid points. We can remedy this by mapping each (-r’, y ’) onto the nearest grid point, but unfortunately the resulting mapping of grid points onto grid points is no longer one-to-one; some grid points in the output may have more than one input grid point mapped onto them, while others have none. To avoid this problem, we need only make use of the inverse transformation x = WJ’, y ’ ) , y = q(x’, y’). We use this transformation to map each output grid point back into the input plane. The point can then be assigned, e.g., the gray level of the input point nearest to i t - o r , if desired, a weighted average of the gray levels of the input points that surround it. If an image has been geometrically distorted, and the nature of the distortion is known, it can be corrected by applying the appropriate geometric transformation (the inverse of the distortion) to the distorted image. The nature of the distortion can be determined using images of known test objects such as grids. This process of distortion correction is illustrated in Fig. 11. Similarly, two images can be regicstered with each other by identifying pairs of pixels whose neighborhoods match (see Section 5.3 on matching), and then defining a geometric transformation that maps each of these reference pixels on the first image into the corresponding pixel on the second image.
4.3 Noise Cleaning
Noise that is distinguishable from the information in an image is relatively easy to remove. For example, if the image is composed of large objects, and the noise consists of small specks (“salt and pepper”), we can detect the specks as pixels that are very different in gray level from most or all of their neighbors, and we can then remove the specks by replacing each such pixel by the average of its neighbors, a s illustrated in Fig. 12. (In a binary image, specks-as well as thin c u r v e s d a n be removed by a process of expanding and reshrinking; for an arbitrary image, this is analogous to performing a local MAX operation followed by a local MIN operation (or vice versa) at each pixel.) As another example, if the noise is a periodic pattern, then in the Fourier transform of the image it corresponds to a small set of isolated high values (i.e., specks); these can be detected and removed as just described, and the inverse Fourier transform can then be applied to reconstruct an image from which the periodic pattern has been deleted, as illustrated in Fig. 13. (This process is sometimes called notch filtering.) If the noise pattern is combined multiplica-
20
AZ RI E L ROSENFE LD
FIG.1 1 . Correction for geometric distortion: (a) distorted; (b) corrected. From O'Handley and Green, 1972.
IMAGE PROCESSING AND RECOGNITION
21
FIG.12. Removal of "salt and pepper" noise by selective local averaging: (a) original; (b) result of replacing each pixel by the average of its eight neighbors, provided it differed from at least six of its neighbors by at least three gray levels.
tively, rather than additively, with the image, we can take the log of the noisy image (so that the combination is now additive) before filtering out the noise; this approach is called homomorphic jiltering. Image noisiness can also be reduced by various types of averaging operations. For example, if we have several copies of an image that are identical except for the noise, averaging the copies reduces the variability of the noise while preserving the image information, as shown in Fig. 14. Similarly, local averaging (of each pixel with its neighbors) will reduce noise in uniform regions of an image; but it will also blur edges. To avoid this, one can, e.g.:
(a) Detect edges first, and then average each pixel only with those of its neighbors that lie in the direction along the edge (Fig. 15b). (b) Average each pixel only with those of its neighbors whose gray
(a) (b) (C ) FIG. 13. Removal of periodic noise by notch filtering: (a) original; (b) Fourier power spectrum of (a); (c) image reconstructed after removing from (b) the two small spots above and below the center.
AZRIEL ROSENFELD
22
(a)
(b)
(C)
FIG. 14. Smoothing by averaging over different instances of the noise. (a)-(c) are averages of 2, 4, and 8 independently noisy versions of Fig. 12a.
FIG. IS. Smoothing by selective local averaging: (a) original; (b) result of averaging at each pixel in the direction along the edge, if any; ( c ) result of averaging each pixel with its six neighbors whose gray levels are closest to its own;(d) result of median filtering.
IMAGE PROCESSING AND RECOGNITION
23
levels are closest to its own, since these are likely to lie on the same side of an edge as the given pixel (Fig. 1%). (c) Compute the median, rather than the mean, of the gray levels of the pixel and its neighbors; the median will generally not be influenced by the gray levels of those neighbors that lie on the other side of an edge (Fig. 15d). A sequential local averaging process known as KnlrrianJiltering can also be used for noise cleaning; but the description of this process involves concepts that are beyond the scope of this chapter. 4.4 Deblurring
A number of methods can be used to reduce blur in an image. Blurring weakens high-spatial frequencies more than low ones; hence highemphasis frequency filtering (strengthening the high frequencies relative to the low ones) should have a deblurring effect, as shown in Fig. 16. In particular, given an imagef, suppose that we blur it and subtract the resultingf fromf; this “cancels out” the low frequencies (since they are essentially the same inf andf), but leaves the high frequencies relatively intact (since they are essentially absent fromf). Thus adding the Laplacianf - f tof boosts the high frequencies relative to the low ones, with a resultant crispening off, as shown in Fig. 17. It should be pointed out that high-emphasis filtering will also enhance noise, since noise is generally strong at high-spatial frequencies; thus such techniques are best applied in conjunction with noise cleaning, or to images that are relatively noise free. Suppose that an imagef has been blurred by a known weighted local averaging process; this is equivalent to saying thatf has been convolved with a “point spread function” h (namely, the pattern of weights), so that the blurred image g is equal to the convolution h *f. By the convolution theorem for Fourier transforms, this implies that the Fourier transform G of g is the product HF of the Fourier transforms of h andf. Since h is known, so is H , and we can (in principle) divide G = H F by H to obtain F, from which we can get the originalf by inverse Fourier transforming. (To avoid overenhancing the noise that is present in the image, it is best to do the division only for relatively low spatial frequencies, where the noise is relatively weak.) This process is known as inverse$ltering; it is illustrated in Fig. 18. A more general process known as Wienerjltering can be used even when noise is present, but it will not be described in this chapter. In a blurred image, the observed gray levels are linear combinations of the original (unblurred) gray levels, so that in principle one can determine the original gray levels by solving a large system of linear equations. Such algebraic image restoration techniques have been extensively studied, bpt
24
AZRIEL ROSENFELD
((1)
FIG. 16. Deblurring by high-emphasis frequency
IMAGE PROCESSING AND RECOGNITION
(bl
filtering. From O'Handley and Green, 1972.
25
26
AZRlE L ROSENFE LD
(a)
FIG.17. Crispening by adding the Laplacian: (a) original images,f; (b) y‘ - .f where,ris a blurred version off.
they will not be discussed further here. A wide variety of other image restoration techniques have also been developed. 4.5 Reconstruction from Projections
We obtain a projecfion of an image by summing its gray levels along a family of (say) parallel lines. Each of the sums is a linear combination of the original gray levels; thus if we have enough such sums (obtained by taking many different projections), we can in principle determine the original gray levels by solving a large system of linear equations. Such algebraic techniques for reconstructing an image from a set of its projections have been investigated extensively; they will not be described further here. Another approach to reconstructing images from projections is based on the following property of Fourier transforms: Letf be an image, and let F be the two-dimensional Fourier transform off. Letfe be the projection off obtained by summing along the family of lines in direction 8 , and let FO’ be the cross section of F along the line through the origin in direction H + ( d 2 ) : then the one-dimensional Fourier transform off,, is just FO’. This means that if we have many projections off, we can take their Fourier transforms to obtain many cross sections of F . This gives us an approximation to F from which we can reconstructf by taking the inverse Fourier transform of F. Iff is a cross section of a solid object, we can obtain projections off’ by taking x rays of the object from various positions. By methods such as those described in the preceding paragraphs, we can reconstruct f from these projections. (This process is called tomography. ) An abdominal cross section reconstructed in this way is shown in Fig. 19.
IMAGE PROCESSING AND RECOGNITION
27
F I G . 18. Deblumng by inverse filtering: (a) unblurred dot; (b) blurred dot; ( c ) unblurred "5"; (d) blurred "5"; ( e ) result of dividing the Fourier transform of (d) by that of (b) for spatial frequencies below 2 cycleslmm; (0 result of doing the division for spatial frequencies up to 3 cycles/mm. From McGlarnery, 1%5.
4.6 Bibliographical Notes
Image enhancement is treated in Rosenfeld and Kak (1976, Chapter 6); in Gonzalez and Wintz (1977, Chapter 4); and in Pratt (1978, Chapter 12). Much work on image enhancement, including grayscale modification, geometric correction, noise cleaning, and deblurring, has been done at NASA's Jet Propulsion Laboratory (O'Handley and Green, 1972). A
28
AZRl EL ROSENFELD
FIG. 19. Abdominal cross section, reconstructed from a set of x rays. Courtesy of Pfizer Medical Systems, Columbia, Maryland.
classic paper on noise cleaning is Graham(1962); some recent work on simple noise cleaning techniques can be found in Davis and Rosenfeld (1978). Kalman filtering is treated in Rosenfeld and Kak (1976, pp. 235249); and Pratt (1978, pp. 441443). The use of the Laplacian for image sharpening is due to Kovasznay and Joseph (1955); and the application of homomorphic filtering to images has been extensively studied by Stockham (1972). Inverse and Wiener filtering, as well as algebraic and other image restoration techniques, are treated in Rosenfeld and Kak (1976, Chapter 7); Gonzalez and Wintz (1977, Chapter 5 ) ; Pratt (1978, Chapters 13-16); and Andrews and Hunt (1977). Reconstruction from projections is reviewed in Gordon and Herman (1974). 5. Segmentation
Picture descriptions nearly always refer to parts of the picture (i.e., objects or regions); thus .segmetiitrtion of a picture into parts is a basic step in picture recognition and analysis. This section reviews a variety of segmentation techniques, such as (a) Pixel classijication (itid clustering on the basis of gray level, color, or local properties:
IMAGE PROCESSING AND RECOGNITION
29
(b) Edge detection, for extraction of region or object outlines; (c) Pattern matching, for detection of specific local patterns (e.g., lines); the general topic of picture matching, for applications such as registration, change detection, etc., is also briefly discussed; (d) Sequential techniques, including curve tracking, region growing, and partitioning; and (e) Ficuy techniques (sometimes called “relaxation methods”). 5.1 Pixel Classification
Pictures can be segmented by classifying their pixels on the basis of various properties, such as lightness/darkness, color, or local property values computed on the pixels’ neighborhoods. If the desired classes are not known n priori, cluster detection techniques can be applied to the set of property values. A general treatment of pattern classification and clustering will not be given here. To illustrate this idea, consider a class of pictures that contain dark objects on a light background (alphanumeric characters on paper, chromosomes on a microscope slide, etc.) or vice versa (clouds over the ocean, as seen by a satellite). Here we want to assign the pixels into “dark” and “light” classes based on the property of gray level. If the classes are known in advance (e.g., we might know the statistical properties of the brightness of ink and paper under a given illumination), we can use standard pattern classification techniques to assign each pixel to the most likely class. If not, we can analyze the frequencies of occurrence of the gray levels and look for peaks corresponding to light and dark subpopulations of pixels; we can then choose a gray level threshold between these peaks, so as to separate these subpopulations from each other. This is illustrated in Fig. 20. If the illumination varies from one part of the picture to another, we can do this analysis locally to find a set of thresholds, and then interpolate between these to obtain a smoothly varying threshold. This thresholding method of classifying pixels into light and dark classes has many refinements. For example, suppose that for each pixel we measure both gray level and rate of change of gray level (see Section 5.2 on edge detection). If we look at frequencies of occurrence of gray levels only for those pixels at which the rate of change is low, we should be able to detect peaks more easily, since such pixels are probably in the interiors of the objects or background, rather than on object/background borders. Conversely, the pixels for which the rate of change is high often do lie on borders, so that their average gray level may be a good threshold. These ideas are illustrated in Fig. 2 1. Thresholding (using more than one thresh-
++ +++ +
++ + +++ + I
::
*++ ++
v
Q,
h
E gl c
vi .c
IMAGE PROCESSING AND RECOGNITION
31
FIG.21. Use of rate of change of gray level to facilitate thresholding: (a) original picture; (b) histogram of (a); (c) scatter plot of gray level (across) versus its rate of change (down); (d) histogram of gray levels of those pixels in (a)at which the rate of change of gray level is zero: (e) histogram of gray levels of those pixels in (a) having rates of change of gray level in the highest 20%.
FIG. 22. Pixel classification in color space: (a) red, green, and blue components of a picture; (b) projections of color space on the red-green, green-blue, and blue-red planes, showing clusters; (c) pixels belonging to each of five major clusters, shown in white.
32
AZRIEL ROSENFELD
old) can also be applied in cases where there are more than two peakse.g., in microscope images of white blood cells, where there are peaks corresponding to nucleus, cytoplasm, and background. In a color picture, the color of each pixel has red, green, and blue components, so that a pixel can be characterized by a point in a threedimensional color space. (Analogous remarks apply to pictures obtained from rnultispectral scanners, where for each pixel we have a k-tuple of reflectivity values in various spectral bands.) If these color values form clusters, as they usually do, we can partition the color space (e.g., with planes) so as to separate the clusters, and thus classify the pixels. An example is shown in Fig. 22. Pixels can also be classified based on properties computed over their neighborhoods. For example, edge detection (Section 5.2) can be regarded as pixel classification based on the rate of change of gray level; similarly, line detection (Section 5.3) is pixel classification based on degree of match to an appropriate local pattern. We can also segment a picture into “smooth” and “busy” regions by using some local measure of “busyness” as a pixel property. (In practice, the values of such measures are highly variable even within a busy region; but we can reduce this vanability by locally averaging the values.) The use of local busyness, in
FIG.23. Pixel classification in gray level-busyness space: (a) smoothed busyness values for Fig. 22; (b) gray level-busyness space, showing clusters; (c) pixels belonging to each of five major clusters, shown in white.
IMAGE PROCESSING AND RECOGNITION
33
conjunction with gray level, to segment a picture is illustrated in Fig. 23. Local averages of local property measures are generally useful in segmenting a picture into differently textured regions; some simple examples are given in Fig. 24.
5.2 Edge Detection Abrupt transitions between regions in a picture, or between objects and their background, are characterized by a high rate of change of gray level (or color, or some other local property value). Thus we can detect these "edges" by using local differencing operations to measure the rate of change of gray level (or other property value) at each pixel. If we know the rates of change A,, A, in two perpendicular directions, then the maximum rate of change (the gradient) in any direction is given by (A1' + A22)1/2, and the direction of this maximum is tan-I(A2/Al). [For computational simplicity, (A,, + Az')'P is often approximated by IAl 1 + lA2 or by max( A, 1, A, ).I A, and A2 can be defined in a vanety of ways; for example, the Roberts operator uses A&, y ) = f ( x , y ) - f ( x + 1,y + 1) and A&, y ) = f ( x + 1,y) - f ( x , Y + 1) (note that these are in the two diagonal directions) to estimate the gradient at (x + t, y + it), while the Sobel operator uses A1k,y ) = cfor - 1,y + 1) + 2 f ( x - 1, Y ) +for - 1 , Y - 1)1 - Vor + 1,Y + 1) + Yor + 1 , Y ) + 1,y - l)] andA,(x,y)=If(x- l , y + 1 ) + 2 f ( x , y + l ) + f ( x + I , y + 1) 1- L f ( x- I, y - 1) + 2 f ( x , y - 1) + f ( x - l,y - l)] to estimate the gradient at (x, y). Similar operators are obtained if we least-squares fit a surface (e.g., plane
I
1
1 1
+for
FIG. 24. Use of local averages of local property values for texture segmentation: (a) densely dotted region on a sparsely dotted background;(b) local average gray level in (a); (c) result of thresholding (b); (d) black-and-white noise on a background of grayscale noise; (e) gray level gradient values of (d); (0result of locally averaging and thresholding (e).
34
AZRIEL ROSENFELD
FIG.25. Edge detection: (a) original pictures; (b) Roberts gradient values.
or quadric) to the gray levels in a neighborhood o f b , y), and compute the gradient of this surface.2The results of applying the Roberts operator to several pictures are illustrated in Fig. 25. Color edges are detected by applying difference operators to each color component and suitably combining the outputs of these operators. A variety of “texture edges” can be detected by locally averaging the values of various local properties, and taking differences of these averages, as illustrated in Fig. 26. Other statistics of the local property values can be used instead of averages. Many other approaches to edge detection have been investigated, based on such concepts as recursive filtering and maximum-likelihood decision. A variety of specialized difference operators have also been developed, e.g., involving comparisons of differences taken in various directions, or of the differences obtained after various amounts of averaging; however, details will not be given here. 5.3 Pattern Matching
Another form of segmentation is the detection of specified patterns of gray levels in a picture. This involves measuring the degree of match between the given pattern and the picture in every possible position. This process is sometimes called template mutching. Note that the pattern must have a specific size and orientation. The match between a picturef and a pattern g can be measured by computing their correlation l , f g l ( v Zg2)1’2;alternatively, the mismatch - R ) ~ .These between them can be measured by, e.g., I: (f- g or measures are maximized (or minimized) whenf and g match exactly, but
I I:u
* Another approach to edge detection is to find a best-fitting step edge in a neighborhood of (x. y ) . The
given here.
details of this Hueckel operator qpproach are rather complicated, and will not be
IMAGE PROCESSING AND RECOGNITION
35
F I G .26. Texture edge detection: (a)-(b) differences of average gray levels for Figs. 24a. Thin edges can be obtained by suppressing nonmaxima.
they often do not discriminate cleanly between matches and nonmatches, as illustrated in Fig. 27. Better discrimination can usually be achieved by matching outlines or difference values rather than “solid” patterns. For examples, to detect a pattern of 1s on a background of Os, (or, in general, high values on a background of low values), we can represent the pattern by + 1s just inside its border and - 1s just outside; when this pattern of 5 1s is correlated with the picture, we get high positive values only at positions of good match.3 Still better discrimination can be obtained by incorporating logical conditions into the match measurement, rather than simply computing the correlation; thus, in the example just considered, we might require that each point of the pattern have higher gray level than each of its (nonpattern) neighbors. An important application of pattern matching is the detection of lines or curves in a picture. For example, to detect thin high-valued vertical lines on a low-valued background, we can correlate with the pattern -1 -1 -1
1 -1 1 -1 1 -1
of +Is, or we can require that each of the three pixels in the middle column have higher value then each of its neighbors in the two outer columns. The latter approach is preferable, since the correlation method also responds to patterns other than lines, e.g., points and edges. To detect lines in other orientations, analogous patterns (or sets of conditions) can be used, e.g., -1 1 -1
-1 1 -1
-1 -1 1 , - 1 -1 1
1 1 -1 -I 1 - 1 , - 1 1 - 1 -1 -1 -1 -1 I -1
These observations can be justified mathematically by the rnarchedfilrer fheorern and its generalizations. which tell us what (derived) patterns should be correlated with a picture in order that specified detection criteria be maximized at the positions where a given pattern is present.
36
AZRIEL ROSENFELD
(a)
(b)
(C
1
FIG.27. Matching by correlation: (a) picture; (b) template; (c) correlation of (a) and (b) (note the many near misses).
in the horizontal and diagonal directions. Arbitrary (smooth) curves can be detected by using a set of such patterns representing all possible local orientations of a line. To detect thick curves, an analogous set of patterns can be used, based on blocks of 1s and - 1s rather than on single pixels. This process is illustrated in Fig. 28. Pattern matching in every position is a computationally costly process if the pattern is large. This cost can be reduced by using inexpensive tests to eliminate positions from consideration; for example, matching with a distinctive piece of the pattern can be used as a test. Another way to reduce the cost of the correlation process is to perform the correlation by pointwise multiplication in the Fourier domain (by the convolution theorem, the correlation off and g is the inverse Fourier transform of FG*, where F, G are the Fourier transforms off, g and * denotes the complex conjugate). This may be more efficient then direct cross correlation off and g (depending on how large g is) if a fast Fourier transform algorithm is used to compute the transforms. Pattern matching is very sensitive to geometrical distortion. This problem can be somewhat alleviated by blurring the pattern (or image) prior to matching. Another possibility is to break the pattern into small pieces,
FIG. 28. Curve detection: (a) input (output of an edge detector applied to a terrain picture); (b) result of curve detection using logical conditions based on 2 x 2 blocks of pixels.
IMAGE PROCESSING AND RECOGNITION
37
find matches to the pieces, and then find combinations of these matches in (approximately) the correct relative positions. Still another general approach is to segment the image and attempt to identify regions in it whose properties correspond to (parts of) the pattern; this approach matches sets of property values rather than correlating subimages. Certain types of (nonlocal) patterns can be more easily detected in an appropriate transform of the picture than in the picture itself. For example, a periodic pattern gives rise to a set of isolated high values in the picture’s Fourier transform. Straight lines (possibly broken or dotted) in a given direction give rise to peaks when we compute the projection of the picture in that direction. Generally, to detect straight lines in all directions, one can use a point-line transformation that maps each point (u, h ) into the line (e.g.) y = ax + h ; this Hough tmnsformution takes collinear sets of points into concurrent sets of lines, so that a line in the original picture will give rise to a high value where many lines meet in the transformed picture. Analogous methods can be defined for detecting other specific types of curves. It should be pointed out that matching operations have other important uses in picture processing, in addition to their use for detecting specified patterns in a picture. Matching pictures (or parts of pictures) with one another is done for purposes of registration (e.g., pictures of the same scene obtained from different sensors), change detection or motion detection (using pairs of pictures taken at different times), or stereomupping (using pairs of pictures taken from slightly different positions). 5.4 Sequential Segmentation
In the segmentation techniques discussed up to now, the decision about how to classify each pixel (as belonging to a given cluster, or as having a high-gradient value or pattern match value) is independent of the decisions about all the other pixels. These techniques are thus “parallel,” in the sense that they could in principle be done simultaneously, and do not depend on the order in which the pixels are examined. In this section we briefly discuss “sequential” techniques in which each decision does depend on the previous ones. An important example of sequential segmentation is curve (or edge) trucking. Once a pixel belonging to a curve has been detected (see Section 5.3), we can examine nearby pixels for continuation(s) of the curve, and repeat this process to find further continuations. The pixels that are examined, and the criteria for accepting them as continuations, depend on what has previously been accepted. As we learn more about the curve (e.g., its gray level, slope, smoothness, etc.), these criteria can be progressively
38
AZRIEL ROSENFELD
refined; they can also depend on the types of curves that are expected to occur in the picture. Note that we may make errors, and backtracking may be necessary. In general, we can extract homogeneous regions from a picture by a process of region growing, in which pixels (or blocks of pixels) that resemble the region are merged with it. Here again, the acceptance criteria can depend on the types of regions that are expected to occur, and can be refined as we become more certain about the properties of the region. Alternatively, we can start with a large region and split it until the pieces are all homogeneous; or we can start with an arbitrary partition of the picture and apply both merging and splitting until we obtain a piecewise homogeneous partition.4
5.5 Fuzzy Segmentation We have assumed up to now that when we segment a picture, the pixels are classified definitely as light or dark, edge or nonedge, etc. A safer approach is to classify the pixels fuzzily, i.e., to assign them degrees of membership (ranging from 0 to 1) in the classes. These fuzzy classifications can then be sharpened by iteratively adjusting the degrees of membership according to their consistency with the memberships of neighboring pixels. To illustrate this idea, consider the problem of detecting smooth curves (or edges) in a picture. We begin by matching the picture with a set of local patterns, representing lines of various slopes (say el, . . . , en), as in Section 5.3. Our initial estimate of the degree of membership m i h ,y ) of a pixel in the class “line at &” is proportional to the strength of the corresponding match. Let (u, v ) be a neighbor of h,y), say in direction 8. If Oi and 8, are close to 8, m,(x,y ) and m,(u, v ) reinforce one another, since they are “consistent,” i.e., they correspond to a smooth curve passing through (x, y ) and (u, v ) . [The amount by which mi@, y ) is reinforced should depend on the strength of mi(u,v ) and on the degree to which Or, 8, and 8, are collinear; the details will not be given here.] On the other hand, if Oi and 8, are very different from 8, mi&, y ) and m,(u, v ) weaken one another. This process of reinforcement and weakening is applied to all pairs of ms at all pairs of neighboring pixels; it results in a new set of membership estimates m;(x, y). When this procedure is iterated, the ms at points on This partitioning process is one example of the usefulness of recursive methods in segmentation. In general, whenever a picture has been segmented according to some criterion, we can attempt to segment the resulting parts according to other criteria. It is sometimes useful to first segment a reduced-resolution version of a picture, and then refine the segmentation at successively higher resolutions.
IMAGE PROCESSING AND RECOGNITION
39
FIG.29. Iterative curve detection: (a) input (terrain seen from a satellite); (b) edges of (a); (c) initial estimate of the strongest m iat each pixel, indicated by the brightness of a line segment at the appropriate orientation; (d)-(f) iterations I , 3, and 6 of the reinforcement process.
40
A 2 R IE L R 0s ENFE LD
smooth curves that correspond to the slopes of the curves become stronger, while all other M S become weaker. This is illustrated in Fig. 29. Iterative methods of the type just described (sometimes called “relaxation methods”) have many applications in segmentation. For example, pixels can be given memberships in the classes “light” and “dark” according to their gray levels, and these memberships can then be adjusted on the basis of neighborhood consistency; this yields less noisy results than would be obtained by immediate, nonfuzzy thresholding. As another example, matching can be used to detect tentatively parts of a pattern, and these detections can then be confirmed by the (fuzzy) presence of other parts of the pattern in the proper relative positions. A variety of applications of this approach have been successfully tested.
5.6 Bibliographical Notes Picture segmentation and matching is the subject of Rosenfeld and Kak (1976, Chapter 8), Gonzalez and Wintz (1977, Chapter 7), and Pratt (1978, parts of Chapters 17-19). Thresholding techniques are surveyed in Weszka (1978). On refinements using rate of change of gray level see Panda and Rosenfeld (1978). Color clustering and local property value clustering are compared in Schachter et a/. (1978). A survey of edge detection techniques is in Davis (1975). Region growing is reviewed in Zucker (1976); and “relaxation” methods of fuzzy segmentation are reviewed in Rosenfeld (1977).
6. Representation The segmentation techniques of Section 5 extract distinguished sets of pixels from a picture, but are not concerned, for the most part, with how these sets define objects or regions. (The curve tracking and region growing methods mentioned in Section 5.4 are an exception.) This section deals with the decomposition of a picture subset into (connected) regions; with methods of representing regions to facilitate their further analysis; and with segmentation of regions into parts based on shape criteria. Section 7 will discuss the measurement of region properties and relationships among regions for purposes of picture description. In particular, the following topics will be covered in this section: (a) Connectivity and connected component decomposition; (b) Representation of regions by lists of runs; segmentation by run tracking; (c) Representation of regions by border curves; border following, chain coding;
IMAGE PROCESSING AND RECOGNITION
41
(d) Representation of regions by skeletons; thinning; and (e) Segmentation of borders and curves. 6.1 Connectedness
Let S be any subset of a digital picture. We say that the pixels P, Q of S are connected (in S ) if there is a sequence of pixels P = P o , P I , . . . ,P,, = Q, all in S, such that P , is a neighbor of P i - l , 1 5 i 5 n . [There are two versions of this definition, depending on whether or not we allow diagonal neighbors. We will refer to the two concepts as “4connectedness” (diagonal moves not allowed) and “&connectedness.”] S is called connected if any two of its pixels are connected. More generally, a maximal set of mutually connected pixels of S is called a connected component of S . Let % be the complement of S ; then 3 too can be decomposed into connected components. If we regard the region B outside the picture as being in 3, then exactly one of these components contains B; it is called the background of S. All other components, if any, are called holes in S. It turns out to be important to use opposite kinds of connectedness forS and %; thus if we treat S as consisting of 4components, we should treat 3 as consisting of 8-components, and vice versa. When we speak of “objects” or “regions” in a picture, we usually imply that they are connected. Thus when we are given an arbitrary picture subset S , we often want to decompose it into its connected components. This decomposition can be represented by assigning labels to the pixels of S . such that all pixels in the same component have the same label, but no two pixels in different components have the same label. An algorithm that does this “component labeling” will be described in the next section. We may sometimes want to consider a region as connected if its parts are separated by very small gaps, or to consider it as not connected if its parts are joined by thin “bridges.” Suppose that we “expand” S by adjoining to it points that are adjacent to it, and then reshrink the expanded S by deleting its border points. As illustrated in Fig. 30, this process tends to eliminate small gaps. (Several successive expansion steps, followed by several successive shrinking steps, will be necessary if the gaps are several pixels wide.) Conversely, suppose we shrink S and then reexpand it; as Fig. 31 shows, this tends to erase thin bridges5 Expanding and reshrinking can also be used to eliminate small holes from S (i.e., small components of 51, while shrinking and reexpanding eliminates small components of S . Shrinking algorithms that preserve connectedness (so that every connected object eventually shrinks to a point) can also be defined; the details will not be given here.
42
AZRIEL ROSENFELD
P
P
P
P P P
P P P P P
P P P P P P
P P P P P P P P P P
P
P P P
FIG.30. Elimination of small gaps by expanding and reshrinking: (a) original S; (b) result of expanding; ( c ) result of reshrinking.
6.2 Representation by Runs; Component Labeling and Counting
Given any picture subset S, each row of the picture consists, in general, of runs of pixels in S (for brevity: S-runs) separated by runs of pixels in 5 (1-runs). Thus we can represent S by a list of the lengths (and positions) of these runs on each row. (Compare the discussion of run length coding in Section 3.1.) The following algorithm, based on the run representation, labels the components of S as described in Section 6.1: On the first row of the picture, each S-run (if any) is assigned a distinct label. On succeeding rows, for each S-run p ,
(a) If p is not adjacent to any S-run on the preceding row, we give it a new label. (b) If p is adjacent to just one S-run p’ on the preceding row, we give it the same label as p ’ . (c) If p is adjacent to more than one S-run on the preceding row, we give it one of their labels, and we also note that all of their labels are equivalent (i.e., belong to the same component of S). After the entire picture has been processed in this way, we sort the labels into equivalence classes, and then rescan S row by row, relabeling the runs (if necessary) so that all equivalent labels are replaced by a single label. This completes the component labeling process. A simple example is shown in Fig. 32. P P P
P P P
P P P P P P P
P P P
P P P
P
P
P P P
P P P
P P P
P P P
P P P
P P P
FIG.31. Erasure of thin bridges by shrinking and reexpanding: (a) original S: (b) result of winking; ( c ) result of reexpanding.
IMAGE PROCESSING AND RECOGNITION
43
The run representation can also serve a s a basis for segmenting the components of S into parts in accordance with how the runs merge, split, or change significantly in size or position. Note, however, that this segmentation process is sensitive to the orientation of S; it should be used only when S has known orientation. To count the objects (i.e., connected components of some set S) in a picture, we label the components as described above and count the number of inequivalent labels. A simplified counting algorithm that is often proposed is as follows: On the first row, count 1 for each S-run:on succeeding rows, for each p , count 1 if p is not adjacent to any S-run on the previous row, but count -(k - 1) if p is adjacent to k S-runs on the preceding row. Unfortunately, this simplified algorithm works only if S has no holes: otherwise, what it counts is the number of components of S minus the number of its holes. 6.3 Representation by Border Curves; Border Following, Chain Coding
Let C be a connected subset of the picture; then the border of C (= the set of points of C that are adjacent to consists of a set of closed curves,
c)
P P P P P P P P P
P P P P P P P P
P P
P P P P P P P P
(a)
P P P P
A A A B B A A A A A B E A A A A A A E A A A A
c c c D c c c
A A A A A A A A A A A A A A A A A A A A A A A
c c c c c c c c
D (b)
(C)
FIG. 32. Connected component labeling: (a) original S: (b) result of first row-by-row scan (using labels A , B , C, . . .): ( c ) result of second scan. Equivalences: A = B , C = D. A = E; equivalence classes: A, B , E , C, D.
AZRl E L ROSEN FE LD
44
QO P
P
Q1 R12
Qo
R02
p2
‘0
R03
R17 ’1
p1
R16 R15 R 1 4
P
R13
(a)
p3
p2
R35 p4
Q2
R34 p 3
R 4 2 R 4 3 R4 4 Q4 p 4 Q3
P
P
R 3 3 R32 R 3 1 (e)
(d)
(f)
FIG.33. Border following. (a) Initial state. (b) Step I : R,, = PI, R,,, = Q I . ( c ) Step 2: R I H= P,, R 1 , = Q,. The algorithm does not stop, even though P2 = Po,since Q,, is not one of the R s . (d) Step 3: R,, = P:,,R P I= QP = Q:,. (e) Step 4: R:,@= P , , Rna = Q4.(0 Step 5: R,,, = P s . R14 = Qs.The algorithm stops, since P , = P,, and Q . is one of the R s .
c
one for each component of that is adjacent to C. One of these curves, where C is adjacent to the background, is called the outer border of C : the others (if any) are called hole borders of C . Note that if C is thin, these curves may pass through a point more than once, and may not be disjoint from one another. Let D be a component of that is adjacent to C , and let P, Q be a pair of adjacent points in C, respectively. The following algorithm constructs the curve along which C is adjacent to D (the “D-border” of C): Set P,, = P, Qo = Q. Given P, and Qi, let the neighbors of P i , in (say) clockwise order starting with Qi, be R i l .R i z , . . . , Ri,. Let R, be the first . Pi+l = Po, of the Ris that lie in C; take Pi+1= R, and Qi+l = R i J P lWhen and Qo is one of the R,s that were examined before finding P i + l ,stop. (This algorithm treats C as 8-connected and D as 4-connected; it must be slightly modified in the reverse case.) A simple example of the operation of this algorithm is given in Fig. 33.6 The successive P i s found by this algorithm are always neighbors of one another (with diagonal neighbors allowed); hence we can represent the
c,
c
A more complicated algorithm exists that tracks all the borders of all the components of a given set S in a single row-by-row scan of the picture. The details will not be given here. @
IMAGE PROCESSING AND RECOGNITION
45
sequence of Pis by a sequence of 3-bit numbers, where each number represents a specific neighbor according to the following scheme: 3 4 5
2 * 6
1 0 7
(Mnemonic: The ith neighbor is at angle 45” from the positive x axis.) Such a sequence is called a chain code. For example, the border in Fig. 33 has the chain code 73520. We can reconstruct C if we are given the chain codes of all its borders, together with the starting point P o and its neighbor Qo for each border. Specifically, for each D-border of C, we mark Po with (say) 1 and Qo with 0. Given that P i and Q ihave been marked, we find Pi+,from the chain code and mark it 1, and we also mark all the neighbors of Pi between Q i and P i + 1in clockwise order with 0s. When this process is complete, that entire border of C has been marked with Is, and its neighbors in D have been marked with 0s. When all borders of C have been processed in this way, we can fill in the interior of C by allowing 1s to “propagate” to unmarked pixels (but not to 0s).
6.4 Representation by Skeletons; Thinning
Given any pixel P in the set S , let A ( P )be the largest “disk” centered at P that is entirely contained in S. ( A need not be circular; it can be of any convenient shape, e.g., square.) We call A(P)maximalif it is not contained in any other It is easy to see that S is the union of the maximal A(P)s. The set of centers of these A ( P ) s constitutes a sort of “skeleton” of S (they are pixels whose distances from the border of S are local maxima); these centers, together with their associated radii, are called the medid u i s trun&rm (MAT) of S. Algorithms exist that construct the MAT of a given S , and that reconstruct S from its MAT, in two row-byrow scans of the picture, one from top-to-bottom and the other from bottom-to-top; details will not be given here. Even if S is connected, its MAT need not be connected; but we can define algorithms that always yield connected skeletons. For example, suppose that we delete each border pixel of S that has at least two neighbors in S and whose deletion does not disconnect the points of S in its neighborhood; this is done simultaneously for all border pixels on a given side of S (north, south, east, or west). When we do this repeatedly, S shrinks to a connected skeleton, consisting of a set of thin arcs and curves. This thinning process is illustrated in Fig. 34, which also shows the
Ace).
AZ RI E L ROS ENFE LD
46 P P P
P P P P P P P P
(a)
P P P
P P P
1
2
1
P P P
(b)
(C)
(d)
FIG. 34. Thinning: (a) original S: (b) first step (removal of north border points); ( c ) second step (removal of south border points); (d) MAT of S (the numbers are the radii).
MAT of the same S . Thinning is most appropriately applied to S s that are elongated. (We can define a set S of areaA to be elongated if it disappears completely when we shrink it by a number of steps that is small compared to fl;e.g., the object in Fig. 34 has area 1 1 and disappears when we shrink it twice.) The branches of the skeleton correspond to “arms’‘ or “lobes” of S ; thus the skeleton provides a basis for segmenting,S into such “arms.” Skeleton representations can also be defined by piecewise approximating S using symmetrical “strips” of varying width; the midlines of these strips correspond to skeleton branches, Analogously, three-dimensional objects can often be piecewise approximated by “generalized cones” of varying width. Methods of constructing such approximations will not be discussed here. 6.5 Segmentation of Curves We have seen in Sections 6.3 and 6.4 that regions can be represented by their borders, which are closed curves, or by their skeletons, which are composed of arcs and curves. We have also seen that arcs and curves can be represented by chuin codes that define sequences of moves from neighbor to neighbor. In this section we discuss methods of segmenting arcs or curves defined by chain codes. Each link in a chain code corresponds to a slope, which is a multiple of 45”; if desired, we can obtain a more continuous set of slopes by local averaging. By analyzing the frequencies of occurrence of the slopes (i.e., the slope histogram or “directionality spectrum”), we can detect peaks corresponding to predominant directions; this is analogous to detecting gray level subpopulations in a picture (Section 5 . I). By measuring the rate of change of slope (i.e., the curvature), we can detect “angles” or “corners” at which abrupt slope changes occur. These correspond to edges in a picture (see Section 5.2); they are useful in constructing polygonal approximations to the curve. (Such approximations can also be defined by piecewise approximating the curve with straight lines; compare the begin-
47
IMAGE PROCESSING AND RECOGNITION x+ x X+
X
X
X
X
X'
X'
X
x x
X'
X
.r
X
X
x'
X X
x
X
X
X
x' x
X
x'
x
X
X
X'
X'
X+
X
x
x ' x
x
X
x' x
X
X
x+
x' x+
X
x + x'
X
x'
x
X
X
X
x'
x x
x+
(a)
55656
70211
21111
10110
10224
45455
42212
12345
55655
55555
55671
10100
( b)
1 2 3 4
Slope
0
Frequency
7 I5 8
I
5
5 6 7 18 4 2
(C)
FIG.35. Curve segmentation. (a) Curve; asterisks and primes show maxima and zerocrossings of curvature. (b) Chain code of (a). ( c ) Slope histogram of (a).
48
A 2 RIE L ROSE NFE LD
ning of Section 3.) Points where the curvature changes sign, or “points of inflection,” segment the curve into convex and concave parts. Figure 35 illustrates these concepts for a simple curve. Given a pair of points on a curve, if the arc length between them is not much greater than the chord length (= the distance between them), or if the arc does not get far away from the chord, then the curve is relatively straight between them; otherwise, the curve has a “spur” or “bulb” between them. We can also detect matches between pieces of the curve and specified slope patterns (using, e.g., chain code correlation, in analogy with Section 5.3).7 Sequential and fuzzy methods can also be used for curve segmentation, as in Sections 5.4 and 5.5 Curve analysis is sometimes easier if we represent the curve by some type of transform. The chain code gives the slope of the curve as a function of arc length; we can take the Fourier transform of this function and use it to detect, e.g., wiggliness or periodicity properties of the curve. The same can be done with other equations representing the curve, e.g., parametric or polar equations. 6.6 Bibliographical Notes
Representation of picture parts, and measurement of their geometrical properties, as well as segmentation of arcs and curves, is covered in Rosenfeld and Kak (1976, Chapter 9), Gonzalez and Wintz (1977, Section 7.2), and in Pratt (1978, especially in Chapter 18). Connectedness and borders in digital pictures were first studied in Rosenfeld (1970). Chain coding is reviewed in Freeman (1974). On the MAT, see Blum (1967); a characterization of connectedness-preserving thinning algorithms is given in Rosenfeld (1975). 7. Description
This section discusses the measurement of region properties and relationships for picture description purposes. Topics covered include (a) Geometrical properties of a region (size, shape, etc.); (b) Properties of the gray level distribution in a region or picture (moments, textural properties); and (c) Spatial relationships among regions. I n particular, the slope patterns corresponding to straight lines can be characterized as follows: They involve at most two slopes, differing by 45”. one of which occurs in singletons and the other in runs of (approximately) equal length.
IMAGE PROCESSING AND RECOGNITION
49
The role of models in the design of processing and analysis techniques is also briefly considered. 7.1 Geometrical Properties
The area of a region in a digital picture is simply the number of pixels in the region. If the region is represented by a list of runs, its area is computed by summing the run lengths. If it is represented by a set of border chain codes, its area can be computed by applying the trapezoidal rule to determine the area inside each chain, and then subtracting the hole areas from the area contained inside the outer border. There is no simple way to compute area (or perimeter) from a MAT representation of a region. The perimeter of a region can be defined as the number of its border points, or as the total length of its border chain codes (counting diagonal links as V?, if desired). The height and width of a region are the distances between the highest and lowest rows, or leftmost and rightmost columns, that the region occupies; they can be computed from the chain code of the outer border by comulatively summing to obtain the highest and lowest x and y values. The extent of a region in any given direction is obtained analogously. The shape complexity of a region (without holes) is sometimes measured by P2/A,where P is perimeter andA is area; this is low for compact shapes and high for “dispersed” ones. An alternative measure is the sum of the absolute curvatures (summed around the outer border of the region), which is high for jagged shapes. The elongatedness of a region can be measured by A IW , where W is the number of shrinking steps required to annihilate the shape (this is easily determined from the MAT representation). There are several essentially equivalent criteria for a region R to be convex: (a) No straight line intersects R more than once. (b) For any two points (x, y ) , (u, v ) in R , their midpoint [@ + u)/2, 0, + v)/2+rounded if necessary-is also in R. (c) R has no holes, and the curvature of its outer border never changes sign. The convex hull of any region R is the smallest convex region that contains R ; it is basically the union ofR with its holes and concavities. A variety of algorithms have been designed for concavity detection and convex hull construction. The geometric properties mentioned above are all invariant with respect to translation (by an integer number of pixels), and should also be essen-
AZRIEL ROSENFELD
50
tially invariant with respect to rotation (rotation by an angle that is not a multiple of 90"requires redigitization; see Section 4.2). Some of them are also essentially invariant with respect to magnification (the obvious exceptions are the size measures in the first two paragraphs). A general method of ensuring that properties will be invariant under geometric transformations is to normalize the input before the properties are computed; this converts the input into a form that is independent of the position (or orientation, scale, etc.) of the original. The following are three representative normalization techniques (see Fig. 36): (a) The autocorrelation and Fourier power spectrum of a picture are the same no matter how the picture is translated; thus properties measured on these transforms are automatically translation-invariant. Analogous transforms can be devised that yield rotation and scale invariance. (b) A picture or region can be normalized with respect to translation by putting its centroid at the origin of the coordinate system; with respect to
Rectangle dimensions Rotated by (degrees) 0 10 20 30 40 50
60 70 80
Width
Height
Area
28 27 27 30 29 27 27 28 28
28 29 29 30 30 31 31 31 30
784 783 783 900
8 70 837 837 868 840
FIG.36. Geometrical normalization: (a) object; (b) same, with background erased; (c) rotation of (a) to make principal axis of inertia vertical: (d) rotation of (a) to make long sides of smallest circumscribed rectangle vertical; (e) dimensions of circumscribed rectangles for various orientations.
IMAGE PROCESSING AND RECOGNITION
51
rotation, by making its principal axis of inertia thex axis; and with respect to scale, by rescaling it so that its moment of inertia has some standard value. (See Section 7.2 on moments.) (c) Alternatively, a region can be normalized with respect to translation, rotation, and scale by constructing its smallest circumscribing rectangle and putting it at the origin, oriented along the coordinate axes, and scaling to make it a standard size. 7.2 Gray- Level-Dependent Properties
The geometrical properties discussed in Section 7. I do not depend on gray level, but only on the set of pixels that constitute the given region. In this section we discuss properties that do depend on gray level. Such properties can be measured either for a region or for a (sub)picture; for simplicity, we consider the latter case. An important class of gray-level-dependent properties are statistical properties that depend only on the population of gray levels in the picture, but not on their spatial arrangement. For example, the mean gray level is a measure of overall lightness/darkness, while the standard deviation of gray level is a measure of contrast. Another class of (basically) statistical properties are those that measure various textural properties of a picture, such as its coarseness or busyness. This can be done in a number of ways: (a) The autocorrelation of a busy picture falls off rapidly; conversely, the Fourier power spectrum of a busy picture falls off slowly. Thus the rate of falloff of these transforms can be used to measure busyness (Fig. 37). (b) The second-order gray level distribution of a picture measures how often each possible pair of gray levels occurs at a given relative displacement. If these gray levels are often quite different even for small displacements, the picture is busy. (c) Alternatively, suppose that we simply measure the mean value of the picture’s gray level gradient; this will be higher for a busy picture than for a smooth one (Fig. 38). In general, statistics of local property values (measured at each pixel) can be used to measure a variety of textural properties of pictures. A related idea is to analyze the frequency of occurrence of local maxima or minima of gray level. One can also measure statistics of the properties of small regions extracted from a picture, or second-order statistics of the properties of neighboring pairs of such regions. Other approaches to texture analysis involve concepts such as random fields or time series, and are beyond the scope of this paper.
52
AZRlE L ROSENFELD
FIG.37. Measuring busyness by the rate of falloff of the Fourier power spectrum: (a) pictures; (b) Fourier power spectra (log scaled): (c) averages of (b) over rings centered at the origin.
Most of the busyness measures just described are sensitive to the contrast of the picture, as well as to its busyness. Thus some form of grayscale normalization should be performed before such measures are computed. For example, one can shift and stretch (or compress) the grayscale so that the mean and standard deviation of gray level have specified values; or one can transform the grayscale to make each gray level occur equally often, as in Section 4.1. A class of gray-level-dependent properties that do depend on spatial arrangement are the moments of the picture. The (i, j ) moment of the picturefis defined to be m = Z r i y y ( x ,y ), where the sum is taken over the entire picture. In particular, rn,,/m, and mol/m, are the coordinates of the centroid of the picture (= its center of gravity, if we regard gray level as mass). Moments of odd degree, such as m,, and m,,, tell us about the balance of gray levels between the left and right, or upper and lower, half planes; while moments of even degree, such as mZ0and m,,, tell us about the spread of gray levels away from the y orx axis. The principal axis is the line through the centroid about which the spread of gray levels is least; its slope 8 is a root of the equation tan2 8 + [(m2, - mo2)/m1,]tan 8 - 1 = 0. (The ratio of greatest spread to least spread can be used as a iJ
IMAGE PROCESSING AND RECOGNITION
53
FIG.38. Measuring busyness by the average gray level difference: (a)-(b) x and .v differences of the pictures in Fig. 37a; (c)-(d) histograms of the values in (a)-(b), log scaled.
measure of elongatedness; but this measure is not sensitive to the elongatedness of, e.g., a coiled-up snake.) We saw in Section 7.1 how the centroid and principal axis can be used for geometrical normalization. One can define combinations of moments that are invariant under geometrical transformations; for example, if we take the centroid at the origin, + mio2 is invariant under rotation. Variations in gray level or texture can provide important clues to the three-dimensional orientation of surfaces in a scene. Texture coarseness decreases with increasing range or obliquity; thus the direction in which it is changing most rapidly is an indicator of surface orientation. Under
54
AZRIEL ROSENFELD
given conditions of illumination, information about the three-dimensional shape of a diffusely reflecting surface can be deduced from gray level variations. If two pictures taken from different positions are available, three-dimensional surface shape can in principle be derived from measurements of stero (or motion) parallax. Occlusion of one region by another, as evidenced by the presence of “2’-junctions” in an image, provides a cue to relative distance. There are a variety of other “depth cues,” involving such factors as relative size and perspective; the details will not be given here. 7.3 Relations and Models
Picture descriptions may involve not only properties of single regions, but also relationships among regions. Some of these are mathematically well defined-e.g., adjacency and surroundedness. A is adjacent to B if there exists a pair of pixels P, Q in A, B, respectively, such that P and Q are neighbors. A surrounds B if any path (= sequence of pixels, each a neighbor of the preceding) from B to the border of the picture must meet A. Other relations among regions, involving relative position, are inherently fuzzy. Examples of such relations are to the leftlright of; above/ below; neadfar; and between. For single pixels, or small regions, one can define the degree of membership in a relation such as “to the left of,” as being + 1 on the negative x axis and falling off to 0 on they axis. For large regions, however, it is much more complicated to define “to the left of,” since parts of one object may be to the left of the other object, while other parts are not. A picture can generally be described by a relational structure. This might take the form of a labeled graph in which the nodes represent objects or regions; each node is labeled with a list of its properties; and the nodes are connected by arcs representing relations. The structural description of a picture is often hierarchical: the picture consists of parts, each of which is in turn composed of subparts, and so on. This suggests the possibility of modeling classes of pictures by “grammars” whose rules specify, e.g., how a given part of a structure, in a given context, can be expanded into a particular substructure. Such grammars have been used successfully in the analysis of various classes of pictures, as well as in analyzing textures and shapes. Image models are playing an increasingly important role in the design of image processing and analysis techniques. A wide variety of models have been used; they range from simple statistical models for the image’s gray level population, to complex hierarchical models for region and subregion
IMAGE PROCESSING AND RECOGNITION
55
configurations. The further development of such models will help to provide firmer mathematical foundations for the field of image processing and analysis. 7.4 Bibliographical Notes
Picture properties are covered in Rosenfeld and Kak (1976, Chapters 9-10), Gonzalez and Wintz (1977, Chapter 7), and Pratt (1978, Chapters 17-18). Convexity in digital pictures was first studied in Sklansky (1970). Textural properties are reviewed in Haralick (1979); and shape description is reviewed in Pavlidis (1978). On spatial relations see Freeman (1975). Syntactic methods in pattern recognition are discussed by Fu (1974, 1977) and Pavlidis (1977). 8. Concluding Remarks
Digital image processing and recognition techniques have a broad variety of applications. Image coding is used extensively to reduce the time or bandwidth required for image transmission. Image enhancement and restoration techniques are very helpful in improving the usefulness of images taken near the limits of resolution (astronomy, microscopy, satellite reconnaissance) or under adverse conditions (motion, turbulence). Pictorial pattern recognition has innumerable applications in document processing (character recognition), industrial automation (inspection; vision-controlled robot assembly), medicine (hematology, cytology, radiology), and remote sensing, to name only a few of the major areas. Many of these applications have led to the development of commercial image processing and recognition systems. It can be expected that there will be a continued growth in the scope and variety of such practical applications over the coming years. ACKNOWLEDGMENT The support of the National Science Foundation under Grant MCS-76-23763 is gratefully acknowledged, as is the help of Mrs. Virginia Kuykendall in preparing this paper. SUGGESTIONS FOR FURTHER READING Boo/is" Andrews, H. C. ( 1970). "Computer Techniques in Image Processing." Academic Press. New York.
" Proceedings of meetings and books on pattern recognition or artificial intelligence have not been listed here.
56
AZRIEL ROSENFELD
Andrews, H. C., and Hunt, B. R. (1977)."Digital Image Restoration." Prentice-Hall. Englewood Cliffs, New Jersey. Duda. R. 0.. and Hart, P. E. (1973)."Pattern Classification and Scene Analysis." Wiley. New York. Fu, K. S. (1974)."Syntactic Methods in Pattern Recognition." Academic Press, New York. Fu, K. S. (1977)."Syntactic Pattern Recognition, Applications. Springer-Verlag. Berlin and New York. Gonzalez, R. C., and Wintz, P. A. (1977)."Digital Image Processing." Addison-Wesley, Reading, Massachusetts. Huang, 'r. S. ( 1975)."Picture Processing and Digital Filtering." Springer-Verlag, Berlin and New York. Pavlidis, T. (1977). "Structural Pattern Recognition." Springer-Verlag. Berlin and New York. Pratt, W. K. (1978)."Digital Image Processing." Wiley, New York. Rosenfeld, A. (l%9). "Picture Processing by Computer." Academic Press, New York. Rosenfeld, A. ( 1976). "Digital Picture Analysis." Springer-Verlag. Berlin and New York. Rosenfeld, A., and Kak, A. C. (1976)."Digital Picture Processing." Academic Press, New York. Winston, P. M. (1975)."The Psychology of Computer Vision." McGraw-Hill, New York. Bihliogr~rphies
Rosenfeld, Rosenfeld, 416. Rosenfeld, Rosenfeld. 194. Rosenfeld, 155. Rosenfeld, 237. Rosenfeld, 183. Rosenfeld, 242.
A. (l%9). Picture processing by computer. Cornput. Surv. I, 147-176. A. ( 1972). Picture processing: 1972. Comput. Cruphics f ~ n u g Process. e 1, 394A. (1973).Progress in picture processing: 1969-71. Comput. Surv. 5, 81-108. A. ( 1974).Picture processing: 1973. Coniput. Gruphics f ~ n a g eProccss. 3, 178A. ( 1975). Picture processing: 1974. Comput. Grtrphics fmuge Process. 4, 133A. (1976).Picture processing: 1975. Comput. Gruphics frnuge Process. 5, 2 15A. (1977).Picture processing: 1976.Comput. Gruphics ftnuge Process. 6, 157A. (1978).Picture processing: 1977.Comput. Gruphics fmuge Process. 7 , 21 1-
Sdc~cteiIPirpers
Blum, H. (1%7). A transformation for extracting new descriptors of shape. f n "Models for the Perception of Speech and Visual Form" (W.Wathen-Dunn, ed.), pp. 362-380. MIT Press, Cambridge, Massachusetts. Davis, L. S. (1975).A survey of edge detection techniques. Comput. Graphics fnicrgc, Proce.s.s. 4, 248-270. Davis. L. S . , and Rosenfeld, A. (1978).Noise cleaning by iterated local averaging. f E E E Trans. Syst., Mun Cyber. 8, 705-710. Freeman, H. (1974).Computer processing of linedrawing images. A C M Comput. Surv. 6, 57-97. Freeman, J. (1975).The modelling of spatial relations. Comput. Grcrphics fmage Proce.ts. 4, 156- I7I. Gordon, R., and Herman, G . T. (1974).Three-dimensional reconstruction from projections: A review of algorithms. f n t . Rev. Cytol. 38, I 1 1-151.
IMAGE PROCESSING AND RECOGNITION
57
Graham, R. E. ( 1962). Snow removal-a noise-stripping process for picture signals. IRE Trfrns. lfl$ T h P f J n6, 129-144. Habibi. A. ( 1977). Survey of adaptive image coding techniques. IEEE Trtrns. Conifnun. 25, 1275- 1284. Haralick, R. M. (1979). Statistical and structural approaches to texture. Proc. IEEE 67. Huang, T. S. (1977). Coding of two-tone images. IEEE Trans. Comnun. 25, 1275-1284. Kovasznay, L. S. G., and Joseph, H. M. Image processing. Proc. IRE 43, 560-570. Legault, R. ( 1973). The aliasing problems in two-dimensional sampled imagery. I n "Perception of Displayed Information" (L. M. Biberman, ed.). Plenum, New York. Limb, J. 0.. Rubinstein, C. B., and'rhompson, J. E. Digital coding ofcolor video signals-a review. IEEE Trcrns. Cornmun. 25, 1349-1385. Max. J. (I%O). Quantizing for minimum distortion. IRE Trcins. Inf. Theory 6, 7-12. Mertz, P.. and Grey. F. (1934). A theory of scanning and its relation to the characteristics of the transmitted signal in telephotography and television. Bell Syst. k h . J . 13, 464-515. O'Handley, D. A,, and Green, W. B. (1972). Recent developments in digital image processing at the Image Processing Laboratory at the Jet Propulsion Laboratory. Proc. IEEE 60. 821-828. Panda, D. P., and Rosenfeld, A. (1978). Image segmentation by pixel classification in (gray level, edge value) space. IEEE Trrins. C o m p . 27. 875-879. Pavlidis, T. (1978). A review of algorithms for shape analysis. Cornput. Graphics Itncrge Proc.e.s.s. 7, 243-258. Peterson, D. P., and Middleton, D. (1962). Sampling and reconstruction of wave-numberlimited functions in n-dimensional Euclidean spaces. Inf. Conrrol 5 , 279-323. Rosenfeld, A. (1970). Connectivity in digital pictures. J . ACM 17, 146-156. Rosenfeld, A. (1975). A characterization of parallel thinning algorithms. Itif: Control 29, 286-291. Rosenfeld. A. (1977). Iterative methods in image analysis. Proc. IEEE Conf. Prrrrern Recog. Imcrge Process., pp. 14-18. Schachter, B. J., Davis, L. S., and Rosenfeld, A. (1978). Some experiments in image segmentation by clustering of local feature values. Pattern Recognition 11, 19-28. Sklansky, J. (1970). Recognition of convex blobs. Pattern Recognition 2 , 3-10. Stockham, T. G., Jr. (1972). Image processing in the context of a visual model. Pro x in A & x not in inv(f)(x)) 3,4 VERIFY Using: Th. powerset, Df. subset ( 5 ) D in dom(f) 3,5 VERIFY Using: Df. subset, Th. range, Th. 3.10.9 (6) f(D) in A
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
21 1
3 3 Th. 3.10.58 (7) Inv(f)(f(D)) = D
4,6,7,2 CONTRADICTION (8) Not pow(A) IA 1,8 Df. less power' (9) A < pow(A)
Developments since 1975 are summarized in Blaine and McDonald (1978). The main improvements on the system are the use of more natural and more powerful facilities replacing simply the use of a resolution theorem provedearlier, more student aids such as an extended HELP system, and the use of more informal English in the summarization of proofs. These new facilities are illustrated by the output of the informal summary or review of a proof for the Hausdorff maximal principle. It is a classical exercise required of students in the course to prove that the Hausdo& maximal principle is equivalent t o the axiom of choice. What is given here is the proof of the maximal principle using Zorn's lemma, which has already been derived earlier from the axiom of choice. Hausdorff maximal principle: If A is a family of sets, then every chain contained in A is contained in some maximal chain in A. Proof Assume (1) A is a family of sets. Assume (2) C is a c'hain and C C A. Abbreviate: { B: B is a chain and C C B and B C A} by: C!chns. By Zorn's lemma, (3) C!chns has a maximal element. Let B be such that (4)B is a maximal element of C!chns. Hence, (5) B is a chain and C C B and B C A. It follows that, (6) B is a maximal chain in A. Therefore, (7) C is contained in some maximal chain in A.
This summarized proof would not be much shorter written in ordinary textbook fashion. It does not show the use of the more powerful inference procedures, which are deleted in the proof summarization, but the original
21 2
PATRICK SUPPES
interactive version generated by the student did make use of these stronger rules. The current system, called EXCHECK, is a definite improvement on the one described in Smith et a/. (1975), but there is still a great deal to be done before we shall be satisfied with all of its features. The informal English output can certainly be improved upon in terms of naturalness and fluency. What is probably more important, additional substantial gains are needed to make the handling of proofs efficient, flexible, and easy for the students. All of the procedures implemented in EXCHECK are meant to be used by persons who have no prior programming experience or even contact with computers. Moreover, the procedures need to be such that they can be explained rather easily to students beginning a course and of such a character that their use does not interfere with the students’ concentrating on the concepts that are central to the actual content of the course. It is easy to think of specific features that would improve the present procedures, especially those that embody particular features of set theory as opposed to general logic. It seems unlikely that any deep new general discoveries about proof procedures will be found that will apply across quite different domains of mathematics. As in the case of other parts of artificial intelligence, it seems much more reasonable to conjecture at the present time that the procedures used will need to deal in detail with the content of specific areas of mathematics. Thus, for example, some rather different procedures will need to be implemented for a good course in geometry or in number theory, even though the general procedures will also need continued modification and improvements. In order to give the discussion definiteness, I have concentrated on the few courses we have been developing at Stanford. It is obvious, on the other hand, that conceptual development of informal mathematical procedures at a level that makes them easy to use by undergraduate students of mathematics and science has much wider implications for CAI. No doubt, as I just indicated, specific subject matters will require specific study and specific procedures, but the general framework or approach should be applicable to a wide variety of courses that are mathematically based. This applies not only to courses in pure mathematics but also to many courses in particular sciences and disciplines that are closely related to mathematics, such as mathematical statistics, computer science, and operations research. 4.4 Modeling the Student
From the beginning of educational theory about instruction there has been a concern to understand what is going on in the student’s mind as he learns new concepts and skills. This attitude of many years’ standing is
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
213
well exemplified in the following quotation from John Dewey’s famous work, Democracy and Education (1916, quotation from 1966 edition). We now come to a type of theory which denies the existence of faculties and emphasizes the unique role of subject matter in the development of mental and moral disposition. According to it, education is neither a process of unfolding from within nor is it a training of faculties resident in mind itself. It is rather the formation of mind by setting up certain associations or connections of content by means of a subject matter presented from without (p. 69).
With the powerful opportunities for individualization present in CAI, there has been an increased concern to model the student in order to have a deep basis for individualization of instruction. Before considering current work, it is important to emphasize that concern with individualization is by no means restricted to computer-assisted instruction. Over the past decade, there has been an intensive effort by leading educational psychologists to identify strong effects of aptitude-treatment interaction. What is meant by this is the attempt to show that, by appropriate adaptation of curriculum to the aptitude of a particular student, measurable gains in learning can be obtained. One of the striking features of the recent CAI work reviewed below is the absence of references to this extensive literature on aptitude-treatment interaction. The hope that strong effects can be obtained from such interaction can be viewed as a recurring romantic theme in education-not necessarily a romantic theme that is incorrect, but one that is romantic all the sqme because of its implicit hopefulness for obtaining strong learning effects by highly individualized considerations. Unfortunately, the conclusions based upon extensive data analysis, summarized especially in Cronbach and Snow (1977), show how difficult it is in any area to produce such effects. It is fair to conclude at the present time that we do not know how to do it, and from a theoretical standpoint it is not clear how we should proceed. Keeping these negative empirical results in mind, I turn now to one of the more significant recent research efforts in CAI, namely, the development of what is called intelligent CAI (ICAI), which has as its primary motif the psychological modeling of the student. This work, which is represented in a number of publications, especially ones that are still in technical report form, has been especially contributed to by John Seely Brown, Richard R. Burton, Allan Collins, Ira Goldstein, Guy Groen, Seymour Papert, and a still larger number of collaborators of those whom I have just named. It will not be possible to review all of the publications relevant to this topic, but there is a sufficient consistency of theme emerging that it will be possible in a relatively short space to give a sense, I think, of the main objectives, accomplishments, and weaknesses of the work done thus far.
214
PATRICK SUPPES
It is fair to say that the main objective is to design instructional systems that are able to use their accumulated information to act like a good tutor in being able to construct an approximate model of the student. Of course, this concept of constructing a model of the student means a model of the student as a student, not as a person in other respects. Thus, for example, there is little concern for modeling the relation of the student to his peers, his psychological relation to his parents, etc. The models intended are at the present time essentially rather narrowly construed cognitive models of student learning and performance. This restriction is, in my judgment, a praiseworthy feature. It is quite difficult enough to meet this objective in anything like a reasonably satisfactory fashion. As I have formulated the objective of this work, it should be clear that John Dewey would have felt quite at home with this way of looking at instructional matters. The ICAI movement, however, has a taste for detail and specific developments that go far beyond what Dewey himself was concerned with or was able to produce on his own part or by encouragement of his cohorts in educational theory and philosophy. 4.4.1 Features of ICAl Research
There is a certain number of features or principles of this literature on modeling the student that occur repeatedly and that I have tried to extract and formulate. My formulation, however, is too superficial to do full justice to the subtlety of the surrounding discussion to be found in the various reports by the authors mentioned above. My list consists of seven principles or features. (1) At a general level the research proposed (and it is still mainly at the proposal level) represents an application of information-processing models in psychology, especially the recent use of production systems first advocated by Allan Newell. (2) The fundamental psychological assumption is that the student has an internal model of any skill he is using to perform a task. This internal model is responsible primarily for the errors generated, and few of the actual errors that do occur can be regarded as random in character. This principle corresponds to much of classical psychological theorizing about behavior but the strong emphasis on the deterministic character of the behavior is unusual after many years of probabilistic models of behavior and of learning in general psychology. The authors are undoubtedly romantic and too optimistic about the correctness of their deterministic views, especially about the possibility of proving their correctness, but the detailed applications have generated a great deal of interest and it would be a mistake to devalue the efforts because of disagreement about this point.
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
215
( 3 ) The analysis of errors made by the student leads to insight into the bugs in the student’s model of the procedures he is supposed to be applying. The explicit emphasis on bugs and their detection has been one of the most important contributions of artificial intelligence to the general theory of cognitive processes. Seymour Papert has emphasized the fundamental character of this idea for years. It has been taken up with great success and in considerable detail by the various authors mentioned above, but especially by Brown et al. (1976, 1977). A particularly interesting application, worked out in great detail, to errors made by students in elementary arithmetic is to be found in Brown and Burton (1978). (4) The representation of the diagnostic model of the student’s behavior can best be done by use of a procedural network. The term diagnostic model is used to mean “a representation that depicts the student’s internalization of a skill as a variant of a correct version of the skill’’ (Brown et al., 1977, p. 5 ) . A procedural network is defined as a collection of procedures “in which the calling relationships between procedures are made explicit by appropriate links in the network. Each procedure node has two main parts: a conceptual part representing the intent of the procedure, and an operational part consisting of methods for carrying out that intent” (p. 6). It is, of course, clear from this characterization that the notion of a procedural network is not a well-defined mathematical concept but a general concept drawn from ideas that are current in computer programming. The examples of procedural networks to provide diagnostic models of students’ algorithms for doing addition and subtraction problems are, when examined in some detail, very close to ideas to be found in the empirical literature on arithmetic that goes back to the 1920s. There is much that is reminiscent of the early work of Edward Thorndike, Guy T. Buswell, C. H. Judd, B. R. Buckingham, and others, and somewhat later studies that date from the 1940s and 1950s, such as W. A. Brownell (1953), Brownell and Chazal(1958), and Brownell and Moser (1949). These studies are concerned with the effects of practicing constituent parts of a complex arithmetical skill and especially with the comparison of meaningful versus rote learning of subtraction, Unfortunately, this large earlier literature, which from an empirical standpoint is considerably more thorough and sophisticated than the current work on diagnostic models, is not seriously examined or used in this latter work. All the same, there is much that is positive to be said about the approach of Brown and his associates, and if the models can be developed with greater theoretical sophistication and with greater thoroughness of empirical analysis of their strengths and weaknesses, much can be expected in the future. ( 5 ) It is important lo make explicit a goal structure for the computer tutor and also a structure of strategies to be used by the tutor. The concept of
21 6
PATRICK SUPPES
goals and subgoals has been one of the most fruitful outcomes of a variety of work, ranging from problem solving to computer programming. Traditional behavioral psychology of 20 yr ago did not explicitly introduce the concept of a goal, although of course the concepts of ends and of objectives are classical in the theory of practical reasoning since the time of Aristotle. (The classical source of these matters is the extensive discussion in Aristotle’s Nicomachean Ethics.) An explicit theory of tutors built around the concept of goal structure has been set forth by Stevens and Collins (1977). Much that is said here is sensible and would be hard to disagree with. The difficulty of the research is that at present it is at a sufficiently general level that it is difficult to evaluate how successful it will be either as a basic theoretical concept or as a powerful approach to implementation of CAI. (6) A theory of causal and teleological analysis is needed for adequate development of models of the student’s procedures. There is a long history of causal analysis and, more particularly, of teleological analysis that goes back certainly to Aristotle and that has strong roots in modern philosophy. Immanuel Kant’s Critique of Judgment presents an elaborate theory of teleology, for example. For many years, however, teleological notions have been in disrepute in psychology and, to a large extent, also in biology. For a certain period, even causal notions were regarded as otiose by philosophers like Bertrand Russell. * Fortunately, these mistaken ideas about causality and teleology are now recognized as such and there is a healthy revival of interest in them and in further development of their use. An example of application in the present context is to be found in Stevens et al. (1978), but it is also fair to say that this current literature on ICAI has not carried the constructive literature on causality or teleology to new theoretical ground as yet. There is reason to hope that it will in the future. (7) There is an essential need for programs that have specialists’ knowledge of a given domain; it is not feasible to write universal general programs that will operate successfully across a number of diflerent domains. The programs referred to in this principle are the programs used by the computer tutor. This echoes the theme mentioned in the discussion of informal mathematical proofs in Section 4.3. It is unlikely that simple general principles of tutoring will be found that are powerful enough to operate without a great deal of backup from highly particular programs dealing with
* Here is one of Russell’s more extravagant claims in his famous article on these matters (1913): “The law of causality, I believe, like much that passes muster among philosophers, is a relic o f a bygone age, surviving, like the monarchy, only because it is erroneously supposed to do no harm. . . . The principle ‘same cause, same effect,’ which philosophers imagine to be vital to science, is therefore utterly otiose.”
TRENDS IN COMPUTE R-ASSISTED INSTR UCTlON
21 7
specialized domains of knowledge. As mentioned, this is a point that is emphasized in some detail by Goldstein and Papert (1977). In stating these seven features, or principles, I have only tried to catch some of the most general considerations that have dominated the ICAI literature. There are a number of other interesting concepts, for example, Goldstein’s concept of an overlay model, which is the intellectual basis of his concept of a computer coach. The overlay model is regarded as a perturbation on the expert’s model that produces an accurate model of the student. (See, for example, Carr and Goldstein, 1977.) The ICAI programs that embody the seven principles or features listed above are as yet still relatively trivial, with one exception, namely, SOPHIE, and it remains to be seen to what extent the high ambitions for the development of individualized tutorial programs will be realized as more complicated subject matters are tackled. From an experimental and conceptual standpoint, however, the examples that have been worked out are of considerable interest and certainly represent examples whose complexity exceeds that of most familiar paradigms in experimental psychology. 4.4.2 Four Examples of /CAI
One attractive example is Carr and Goldstein’s (1977; see also Goldstein, 1977)implementation of their concept of a computer approach for the game of Wumpus. They describe the game as follows: The Wumpus game was invented by Gregory Yob [1975] and exercises basic knowledge of logic, probability, decision analysis and geometry. Players ranging from children to adults find it enjoyable. The game is a modern day version of Theseus and the Minotaur. The player is initially placed somewhere in a randomly connected warren of caves and told the neighbors of his current location. His goal is to locate the homd Wumpus and slay it with an arrow. Each move to a neighboring cave yields information regarding that cave’s neighbors. The difficulty in choosing a move arises from the existence of dangers in the warren-bats, pits and the Wumpus itself. If the player moves into the Wumpus’ [sic] lair, he is eaten. If he walks into a pit, he falls to his death. Bats pick the player up and randomly drop him elsewhere in the warren. But the player can minimize risk and locate the Wumpus by making the proper logistic and probabilistic inferences from warnings he is given. These warnings are provided whenever the player is in the vicinity of a danger. The Wumpus can be smelled within one or two caves. The squeak of bats can be heard one cave away and the breeze of a pit felt one cave away. The game is won by shooting an arrow into the Wumpus’s lair. If the player exhausts his set of five arrows without hitting the creature, the game is lost (p. 5 ) .
The overlay modeling concept of Goldstein was already mentioned above. The simplified rule set of five reasoning skills for analysis of the overlay model of a given student is exemplified in the following five.
21 8
PATRICK SUPPES
L1: (positive evidence rule) A warning in a cave implies that a danger exists in a neighbor. L2: (negative evidence rule) The absence of a warning implies that no danger exists in any neighbors. L3: (elimination rule) If a cave has a warning and all but one of its neighbors are known to be safe, then the danger is in the remaining neighbor. PI: (equal likelihood rule) In the absence of other knowledge, all of the neighbors of a cave with a warning are equally likely to contain a danger. P2: (double evidence rule) Multiple warnings increase the likelihood that a given cave contains a danger. Overlay models are then characterized in terms of which of these five rules has or has not been mastered. The details of the model are undoubtedly ephemeral at the present time and will not be recapitulated here. The rules just cited do affirm the proposition that the expert programs at the basis of the construction of a computer tutor must be specific to a given domain of knowledge, in this case, knowledge of Wumpus. A second attractive example is the construction of a computer tutor to help students playing the PLAT0 game “How the West Was Won,” a game constructed to provide drill and practice on elementary arithmetical skills in an enticing game format. This game is played with two opponents, the computer usually being one of them, on a game board consisting of 70 positions with, in standard fashion, various obstacles occurring along the route from the first position to the last position. The object of the game is to get to the last position, represented by a town on the map, which is position 70. On each turn the player gets three spinners to generate random numbers. He can combine the values of the spinners, using any two of the four rational arithmetic operations. The value of the arithmetic expression he generates is the number of spaces he gets to move. He must also, by the way, compute the answer. If he generates a negative number, he moves backwards. Along the way there are shortcuts and towns. If a player lands on a shortcut, he advances to the other end of the strip he is on. If he lands on a town, he goes on to the next town. When a player lands on the same place as his opponent, unless he is in a town, his opponent goes back two towns. To win, a player must land exactly on the last town. Both players get the same number of turns, so ties are possible. It is apparent that an optimal strategy for this game is a somewhat complex matter and therefore there is plenty of opportunity for a tutor to improve the actual strategies adopted by students. A relatively elaborate diagnostic model of the sort described above in a general way has been developed for this and is discussed in several publications. The first and most substantial one is Brown et al. (1975b).
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
21 9
A third attractive and at the same time considerably more substantial example, from a pedagogical standpoint, is SOPHIE, which is an operational ICAI system designed to provide tutoring in the domain of electronic troubleshooting (Brown et al., 1975a). As described by Brown et a/. (1976), the kernel system called the SOPHIE lab "consists of a large collection of artificial intelligence programs which use a circuit simulator to answer hypothetical questions, evaluate student hypotheses, provide immediate answers to a wider variety of measurement questions, and allow the student to modify a circuit and discover the ramifications of his modifications. To enable students to carry on a relatively unrestrained English dialogue with the system, the SOPHIE lab has a flexible and robust natural language front-end'' (p. 4). The authors describe several experiments and, in fact, provide one of the few examples in this literature of an attempt at relatively detailed evaluation, although it is scarcely extended or very deep by more general standards of evaluation. One point that the authors stress that is of some interest is that they do not see a conflict between sophisticated ICAI systems and more traditional frameoriented CAI, for they see the latter offering standard exposition of instructional material and the ICAI system providing sophisticated individual tutoring in what corresponds in the case of SOPHIE to actual troubleshooting exercises. The learning environment added on top of the SOPHIE lab consists of two main components. One is called the Expert Debugger, which can not only locate faults in a given simulated instrument, but more importantly can articulate exactly the inferences that lead to the location. It can explain its particular top-level troubleshooting strategy, the reason for making a particular measurement, and what follows from the results of the measurement. The second instructional subsystem added is a troubleshooting game that permits one team to insert an arbitrary fault and requires the other team to locate this fault by making appropriate diagnostic measurements. An interesting requirement for the team that inserts the fault is that it must be able to predict all of its consequences, such as other parts blowing out, and also be able to predict the outcomes of any measurement the diagnosing team requests. The preliminary data reported in Brown et af. (1976) show that there is considerable enthusiasm on the part of the students for the kind of environment created by SOPHIE. The number of students with whom the system has yet been tried is still small, and it is not really operational on a large scale, but certainly SOPHIE must be regarded as one of the most promising developments to come out of the ICAI movement. A fourth and final example to be reviewed here is the development of
220
PATRICK SUPPES
diagnostic models for procedural bugs in basic mathematical skills by Brown and Burton (1977), referred to earlier. This work especially attempts to implement procedural networks as described in a general way and about which some remarks were made specific to arithmetical skills. Two applications of this work show considerable promise. One is the development of an instructional game called BUGGY for training student teachers and others in recognizing how to analyze the nature of student errors. The program simulates student behavior by creating an undebugged procedure, and it is the teacher’s problem to diagnose the nature of the underlying misconception. He makes this diagnosis by providing strategic test exercises for the “student” to solve. The computer program also acts as arbiter in the evaluation of the validity of the hypothesis of the teacher. When the teacher thinks he has discovered a bug, he is then asked to describe it, and to make sure that his description has the proper analytical character, he is asked to answer a 5-exercise test in the same way that he thinks the “student” would. An experiment with a group of undergraduate education majors using BUGGY as the vehicle for teaching the ability to detect regular patterns of errors indicated significant improvement as a result of this experience. More extensive experimentation would be required to estimate the full significance of the use of BUGGY in comparison with more traditional methods of discussing the nature of student errors, as reflected in the kind of literature going back to the 1920s referred to earlier. A second application of the diagnostic modeling system for procedural bugs was to a large database collected in Nicaragua as part of the Radio Mathematics Project (Searle et al., 1976). This system was quite successful in diagnosing in a patterned fashion a large number of the errors made by more than 1300 school students in answering more than 20,000 test items. The program was, in some sense that is difficult to make completely precise, successful in diagnosing a large number of the systematic errors, but what is not clear is what gain was obtained over more traditional methods of analysis of sources of error. For example, the most common bug identified was that when borrowing is required from a column in which the top digit is zero, the student changes the zero to a nine but does not continue borrowing from the next column to the left. This is a classical and well-known source of error of students doing column subtraction problems. The formulation given here does not seem to offer any strong sense of insight beyond the classical discussions of the matter. A more dubious proposal of the authors is that the characterization of errors given by the program BUGGY is a “much fairer evaluation” than the standard method of scoring errors. The concept of fairness is a complicated and subtle one that has had a great deal of discussion in the theory
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
221
of tests. The cavalier nature of this judgment is something that is too often present, and it is a negative aspect of the romantic features of the ICAI literature. 4.4.3 Weaknesses of /CAI Work
The four examples I have described, especially the last two, show the potential for ICAI to set a new trend for computer-assisted instruction in the decade ahead. Much has been thought about and something has been accomplished of considerable merit. I have tried to state what I think those merits are. I would like to close by formulating some of the weaknesses present thus far in the ICAI work. (1) The claims for the potential power of ICAI must mainly be regarded as exaggerated in the absence of supporting empirical data of an evaluative sort. The authors of the various reports referred to seem, in the main, to be unaware of the subtle and complicated character of producing new curricula organized in new ways so as to produce substantial evidence of learning gains. After the efforts that have been devoted to such matters thus far, one expects discussions of these matters in the closing decades of the century to be at once skeptical, detailed, and precise. (2) In spite of the interest in student learning, there has been little effort to develop a theory of learning in connection with the work described above. N o doubt some of the ideas are intuitively appealing, but it is important to recognize that they are as yet far from being articulated in the form of a systematic theory. (3) There is also missing what might be termed standard scholarship. The absence of evidence of detailed acquaintanceship or analysis of prior work in the theory of learning is one instance of such lack of scholarship, but the same can be said in general of the thinness of the references to the extensive literature in psychology and education bearing on the topics of central concern to ICAI. Much of the talk of traditional curriculum theory, for example, is closer than might be imagined and has some of the same strengths and weaknesses. (4) The collective effort represented by ICAI is in the tradition of soft analysis characteristic of traditional curriculum theory. The fact that the analysis is soft, not supported by either exactly formulated theory or extensive empirical investigations, does not mean that it is not able to contribute many clever ideas to the current and future trends in CAI. It does mean that a move has got to be made away from the soft analysis to harder theory and more quantitative analysis of data in order to become the kind of applied science it should be.
222
PATRICK SUPPES
( 5 ) There is running through much of the work on ICAI a problem of identifiability, which is classical in developed sciences such as physics and economics. The workers in this field have commendably turned their attention to underlying structures, especially underlying mental structures, of students learning a new skill or concept, but they have been overly optimistic in much of what they have written thus far about identifying the nature of the structure. I have in fact not seen one really sophisticated discussion of the problems of identifiability that are implicit in the approaches being taken. (6) For researchers interested in modeling the mental structure of students, there is a surprising absence of consideration of powerful nonverbal methods in experimental psychology for making inferences about such structures. I have in mind, first, the importance of latencies or response times as sensitive measures of underlying skill. The relation between such latency measures and the relative difficulty of problems in basic arithmetic has been extensively studied in prior work of my own (for example, Suppes et al., 1968; Suppes and Morningstar, 1972), but the use of latencies is one of the oldest and most thoroughly understood measures in experimental psychology. The second is the technically more complicated study of eye movements, especially for the kind of theory being advocated in the development of either SOPHIE or BUGGY. The study of eye movements would almost certainly give much additional insight into the undebugged models that students are using for solving problems.
In closing I want to emphasize that I think that none of these weaknesses is irremediable or fatal. The ICAI movement is, from a research standpoint, perhaps the single most salient collective effort in extending the range of CAI in the period under review. The movement has much promise and much can be expected from it in the future. 5. The Future
It would be foolhardy to make detailed quantitative predictions about CAI usage in the years ahead. The current developments in computers are moving at too fast a pace to permit a forecast to be made of instructional activities that involve computers 10 years from now. However, without attempting a detailed quantitative forecast it is still possible to say some things about the future that are probably correct and that, when not correct, may be interesting because of the kinds of problems they implicitly involve.
( I ) It is evident that the continued development of more powerful hardware for less dollars will have a decided impact on usage. It is reason-
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
223
able to anticipate that by 1990 there will be widespread use of CAI in schools and colleges in this country, and a rapidly accelerating pattern of development in other parts of the world, especially in countries like Canada, France, Germany, Great Britain, and Japan. Usage should have increased at least by an order of magnitude by 1990-such an order of magnitude increase in the next 12 years requires a monthly growth rate of something under 2%, which is feasible, even if somewhat optimistic. (2) By the year 2000 it is reasonable to predict a substantial use of home CAI. Advanced delivery systems will still be in the process of being put in place, but it may well be that stand-alone terminals will be widely enough distributed and powerful enough by then to support a variety of educational activities in the home. At this point, the technical problems of getting such instructional instrumentation into the home do not seem as complicated and as difficult as organizing the logistical and bureaucratic effort of course production and accreditation procedures. Extensive research on home instruction in the last 50 years shows clearly enough that one of the central problems is providing clear methods of accreditation for the work done. There is, I think, no reason to believe that this situation will change radically because computers are being used for instruction rather than the simpler means of the past. It will still remain of central importance to the student who is working at home to have well-defined methods of accreditation and a well-defined institutional structure within which to conduct his instructional activities, even though they are centered in the home. There has been a recent increasing movement to offer television courses in community colleges and to reduce drastically the number of times the student is required to come to the campus. There are many reasons to believe that a similar kind of model will be effective in institutionalizing and accrediting home-based instruction of the interactive sort that CAI methods can provide. (3) It is likely that videodisks or similar devices will offer a variety of programming possibilities that are not yet available for CAI. But if videodisk courses are to have anything like the finished-production qualities of educational films or television, the costs will be substantial, and it is not yet clear how those costs can be recovered. To give some idea of the magnitude of the matter, we may take as a very conservative estimate in 1978-dollars that the production of educational films cost a thousand dollars per minute. This means that the cost of 10 courses, each with 50 hr of instruction, would be approximately 30 million dollars. There is as yet no market to encourage investors to consider seriously investing capital funds in these amounts. No doubt, as good, reliable videodisk systems or their technological equivalents become available, courses will be produced, but there will be a continuing problem about the production of high quality materials because of the high capital costs.
2 24
PATRICK SUPPES
(4) Each of the areas of research reviewed in Section 4 should have major developments in the next decade. It would indeed be disappointing if by 1990 fairly free natural-language processing in limited areas of knowledge were not possible. By then, the critical question may turn out to be how to do it efficiently rather than the question now of how to do it at all. Also, computers that are mainly silent should begin to be noisily talking “creatures” by 1990 and certainly very much so by 2000. It is true that not all uses of computers have a natural place for spoken speech, but many do, and moreover as such speech becomes easily available, it is reasonable to anticipate that auxiliary functions at least will depend upon spoken messages. In any case, the central use of spoken language in instruction is scarcely a debatable issue, and it is conservative to predict that computer-generated speech will be one of the significant CAI efforts in the decade ahead. The matter of informal mathematical procedures, or rich procedures of a more general sort for mathematics and science instruction, is a narrower and more sharply focused topic than that of either natural-language processing or spoken speech, but the implications for teaching of the availability of such procedures are important. By the year 2000, the kind of role that is played by calculators in elementary arithmetical calculations should be played by computers on a very general basis in all kinds of symbolic calculations or in giving the kinds of mathematical proofs now expected of undergraduates in a wide variety of courses. I also predict that the number of people who make use of such symbolic calculations or mathematical proofs will continue to increase dramatically. One way of making such a prediction dramatic would be to hold that the number of people a hundred years from now who use such procedures will stand in relation to the number now as the number who have taken a course in some kind of symbolic mathematics (algebra or geometry, for example) in the 1970s stand in relation to the number who took such a course in the 1870s. The increase will probably not be this dramatic, but it should be quite impressive all the same, as the penetration of science and technology into all phases of our lives, including our intellectual conception of the world we live in, continues. It goes without saying that the fourth main topic mentioned in Section 4, modeling of students, will have continued attention, and may, during the next decade, have the most significant rate of change. We should expect by 1990 CAI courses of considerable pedagogical and psychological sophistication. The student should expect penetrating and sophisticated things to be said to him about the character of his work and to be disappointed when the CAI courses with which he is interacting do not have such features.
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
225
( 5 ) Finally, I come to my last remark about the future, the prediction that as speech-recognition research, which I have not previously mentioned in this chapter, begins to make serious progress of the sort that some of the recent work reported indicates may be possible, we should have by the year 2020, or shortly thereafter, CAI courses that have the features that Socrates thought so desirable so long ago. What is said in Plato’s dialogue Phaedrus about teaching should be true in the twenty-first century, but now the intimate dialogue between student and tutor will be conducted with a sophisticated computer tutor. The computer tutor will be able to talk to the student at great length and will at least be able to accept and to recognize limited responses by the student. As Phaedrus says in the dialogue named after him, what we should aspire to is “the living word of knowledge which has a soul, and of which the written word is properly no more than an image.” ACKNOWLEDGMENT Research connected with this paper has been supported in part by National Science Foundation Grant No. SED77-09698. I am indebted to Lee Blaine for several useful comments, and to Blaine as well as Robert Laddaga, James McDonald, Arvin Levine, and William Sanders for drawing upon their work in the Institute for Mathematical Studies in the Social Sciences at Stanford. REFERENCES Adkins. K., and Hamilton, M. (1975). “Teachers Handbook for Language Arts 3-6” (3rd ed.. rev.). Computer Curriculum, Palo Alto, California. Alderman, D. L. (1978). “Evaluation of The TICCIT Computer-Assisted Instructional System in the Community College,” Vol. I . Educational Testing Service, Princeton, New Jersey. Allen, J. (1977). A modular audio response system for computer output. IEEE Inr. Conf. ASSP Rec. 77CH1197-3.597. Ashiba, N. (1976). Simple CAI system and an audiotutorial system. J . Conv. Rec. Four Ins!. Electr. Eng. Japan 6 , 177-180. Atal, B. S ., and Hanauer, S. L. (1971). Speech analysis and synthesis by Linear prediction of the speech wave. JASA 50, 637-644. Atkinson, R. C. (1968). Computer-based instruction and the learning process. A m . Psycho/. 23, 225-239. Atkinson, R. C., and Hansen, D. (1966). Computer-assisted instruction in initial reading: The Stanford Project. Read. Res. Q. 2 , 5-25. Atkinson, R. C., Fletcher, D., Lindsay, J., Campbell, J. O., and Barr, A. (1973). Computerassisted instruction in initial reading: Individualized instruction based on optimization . 8, 27-37. procedures. E d i ~ Techno/. Ballaben, G., and Ercoli. P. (1975). Computer-aided teaching of assembler programming. In “Computers in Education” (0.Lecarme and R. Lewis, eds.), pp. 217-221. IFIP, NorthHolland, Amsterdam. Barr, A.. Beard, M., and Atkinson, R. C. (1974). “A Rationale and Description of the
226
PATRICK SUPPES
BASIC Instructional Program” [TR 228 (Psych. and Educ. Ser.)]. Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Barr, A., Beard, M., and Atkinson, R. C. (1975). Information networks for CAI curriculums. In “Computers in Education’’ (0. Lecarme and R. Lewis, eds.), pp. 477-482. IFIP, North-Holland, Amsterdam. Bitzer, D. (1976). The wide world of computer-based education. In “Advances in Computers” (M. Rubinoff and M. C. Yovits, eds.), Vol. 15, pp. 239-283. Academic Press, New York. Blaine, L., and McDonald, J. (1978). “Interactive Processing in the EXCHECK System of Natural Mathematical Reasoning.” Paper presented at the meeting of the California Educational Computer Consortium, Anaheim, California. Bork, A. (1975). The physics computer development project. EDUCOM 10, 14-19. Bork, A. (1977a). Computers and the future of learning. J. Coll. Sci. Teach. 7 ( 2 ) . 8890. Bork, A. (1977b). SPACETIME-An experimental learner-controlled dialog. In “Proceedings of 1977 Conference on Computers in the Undergraduate Curricula-CCUC8,” pp. 207-212. Michigan State University, East Lansing. Bork, A. (1978). Computers, education, and the future of educational institutions. In “Computing in College and University: 1978 and Beyond” (Gerard P. Weeg Memorial Conference), p. 119. University of Iowa, Iowa City. Bork, A,, and Marasco, J. (1977). Modes of computer usage in science. T . H . E . J . (Technological Horizons in Education) 4 (2). Brown, J. S., and Burton, R. R. (1978). Diagnostic models for procedural bugs in basic mathematical skills. Cognitive Science 2 , 155-192. Brown, J . S . , Burton, R. R., and Bell, A. G. (1975a). SOPHIE: A step toward creating a reactive learning environment. Inr. J. Man-Mach. Srud. 7 , 675-696. Brown, J. S.. Burton, R., Miller, M., deKleer, J., Purcell, S., Hausmann, C., and Bobrow, R. (l975b). “Steps toward a Theoretical Foundation for Complex, Knowledge-based CAI” (BBN Rep. 3135; ICAI Rep. 2). Bolt, Beranek & Newman. Cambridge, Massachusetts. Brown, J. S., Rubinstein, R., and Burton, R. (1976). “Reactive Learning Environment for Computer Assisted Electronics Instruction” (BBN Rep. 3314; ICAI Rep. I ) . Bolt, Beranek & Newman, Cambridge, Massachusetts. Brown, J. S . , Burton, R. R., Hausmann, C., Goldstein, I., Huggins, B., and Miller. M. (1977). “Aspects of a Theory for Automated Student Modelling” (BBN Rep. 3549; ICAI Rep. 4). Bolt, Beranek t Newman, Cambridge, Massachusetts. Brownell, W. A. (1953). Arithmetic readiness as a practical classroom concept. Elern. School J. 52, 15-22. Brownell, W. A., and Chazal, C. B. (1958). Premature drill. I n “Research in the Three R’s” (C. W. Hunicutt and W. J. Iverson, eds.), pp. 364-366 (2nd ed., 1960). Harper, New York. Brownell, W. A., and Moser, H. E. (1949). “Meaningful Versus Rote Learning: A Study in Grade Ill Subtraction” (Duke University Research in Education TR 8). Duke Univ. Press, Durham, North Carolina. Bunderson, C. V. (1975). Team production of learner-controlled courseware. In “Improving Instructional Productivity in Higher Education” (S. A. Harrison and L. M. Stolurow, eds.), pp. 91-1 I I . Educational Technology, Englewood Cliffs, New Jersey. Bunderson, C. V. (1977). “A Rejoinder to the ETS Evaluation of TICCIT” (CTRC TR 22). Brigham Young University, Provo, Utah. Bunderson, C. V., and Faust, G. W. (1976). Programmed and computer-assisted instruction. In “The Psychology of Teaching Methods” (75th Yearbook of the National Society for the Study of Education), Part 1, pp. 4-90.Univ. of Chicago Press, Chicago, Illinois.
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
227
Carr, B.,and Goldstein, 1. P. (1977). “Overlays: A Theory of Modelling for Computer Aided Instruction” (MIT Al Memo 406; LOGO Memo 40). Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge. Computer-based Education Research Laboratory (CERL) (1977). “Demonstration of the PLATO I V Computer-based Education System” [final (March) report]. University of Illinois, Urbana. CONDUIT (1977). “Computers in Undergraduate Teaching: 1977 CONDUIT State of the Art Reports in Selected Disciplines.” University of Iowa, Iowa City. Cronbach, L. J., and Snow, R. E. (1977). “Aptitudes and Instructional Methods.” Irvington, New York. Davis, R. B. (1974). What classroom role should the PLATO computer system play? I n “AFIPS-Conference Proceedings,” Vol. 43, pp. 169-173. AFIPS Press, Montvale, New Jersey. Dewey, J. (1966). “Democracy and Education.” Free Press, New York. Dugdale, S., and Kibbey, D. (1977). “Elementary Mathematics with PLATO” (2nd ed.). Computer-based Education Research Lab. (CERL), University of Illinois, Urbana. Fletcher, J. D., and Atkinson, R. C. (1972). Evaluation of the Stanford CAI program in initial reading. J . Educ. Psychol. 63, 597-602. Fletcher, I. D., Adkins, K., and Hamilton, M. (1972). “Teacher’s Handbook for Reading, Grades 3-6.” Computer Curriculum, Palo Alto, California. Goldberg, A., and Suppes, P. (1972). A computer-assisted instruction program for exercises on finding axioms. Educ. Stud. Math. 4, 429-449. Goldberg, A., and Suppes, P. (1976). Computer-assisted instruction in elementary logic at the university level. Educ. Stud. Math. 6, 447-474. Goldstein, 1. P. (1977). “The Computer a s Coach: An Athletic Paradigm for Intellectual Education” (MIT A1 Memo 389). Artificial Intelligence Lab., Massachusetts Institute of Technology, Cambridge. Goldstein, 1. P., and Papert, S. (1977). Artificial intelligence, language, and the study of knowledge. Cogn. Sci. 1 ( I ) , 8&123. Hawkins, C. A., ed. (1977). ”Computer Based Learning” (0.0.0. Mededeling 23,4 parts). Dept. of Research and Development of Higher Education, Rijksuniversteit, Utrecht, The Netherlands. Hunka, S. (1978). CAI: A primary source of instruction in Canada. T.H.E. J . (Technological Horizons in Education) 5 (9,56-58. Hunter, B . , Kastner, C. S., Rubin, M. L., and Seidel, R. J. (1975). “Learning Alternatives in U.S. Education: Where Student and Computer Meet.” HumRRO, Educational Technology, Englewood Cliffs, New Jersey. Jamison, D., Suppes, P., and Wells, S. (1974). The effectiveness of alternative instructional media: A survey. Rev. Educ. Res. 44, 1-67. Kimura, S. (1975). Development of CAI course generator for the National Institute for Educational Research’s CAI system at Tokiwa Middle School. PGET 75 (83), 43-50. Klatt, D. (1976). Structure of a phonological rule component for a synthesis-by-rule program. IEEE Trans. ASSP 24, 391. Laddaga, R., Leben, W. R., Levine, A., Sanders, W. R., and Suppes, P. (1978). “Computer-assisted Instruction in Initial Reading with Audio.” Unpublished manuscript, Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Larsen, I., Markosian, L. Z., and Suppes, P. (1978). Performance models of undergraduate students on computer-assisted instruction in elementary logic. Instruc. Sci. 7, 15-35. Laymon, R., and Lloyd, T. (1977). Computer-assisted instruction in logic: ENIGMA. Teuch. Philos. 2 ( I ) , 15-28.
PATRICK SUPPES Lecarme, O., and Lewis, R.. eds. (1975). “Computers in Education.” IFIP, North-Holland, Amsterdam. Lekan, H. A., ed. (1971). “Index to Computer Assisted Instruction” (3rd ed.). Harcourt. New York. Levien, R. E. (1972). “The Emerging Technology: Instructional Uses of the Computer in Higher Education.” McGraw-Hill. New York. Levine, A., and Sanders, W. R. (1978). “The MISS Speech Synthesis System” [TR 299 (Psych. and Educ. Ser.)]. Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Macken, E., and Suppes, P. (1976). Evaluation studies of CCC elementary-school curriculums, 1971-1975. CCC Educ. Stud. l, .1-37. Makhoul, J. (1975). Linear prediction: A tutorial review. Proc. I E E E 63 (4), 561-580. Markel, J. D., and Gray, A. H. (1976). “Linear Prediction of Speech.” Springer-Verlag, Berlin and New York. Partee, B., ed. (1976). “Montague Grammar.” Academic Press, New York. Poulsen, G., and Macken, E.(1978). “Evaluation Studies of CCC Elementary Curriculums, 1975-1977.” Computer Curriculum, Palo Alto, California. Russell, B. (1913). On the notion of cause. Proc. Arisror. SOC. 13, 1-26. Sakamoto, T. (1977). The current state of educational technology in Japan. Educ. Techno/. Res. 1, 39-63. Sanders, W. R., Benbassat, 0.V., and Smith, R. L. (1976). Speech synthesis for computer assisted instruction: The MISS system and its applications. S I G G U E Bull. 8 ( I ) , 200-211. Sanders, W., Levine, A,, and Gramlich, C. (1978). The sensitivity of LPC synthesized speech quality to the imposition of artificial pitch, duration, loudness and spectral contours. J . Acoust. Soc. Am. 64, S1 (abstract). Santos, S. M. dos, and Millan, M. R. (1975). A system for teaching programming by means of a Brazilian minicomputer. I n “Computers in Education” (0.Lecarme and R. Lewis, eds.), pp. 211-216. IFIP, North-Holland, Amsterdam. Schank, R. (1973). Identification of conceptualization underlying natural language. I n “Computer Models of Thought and Language” (R. C. Schank and K. M. Colby, eds.). Freeman, San Francisco. Schank. R. C. (1975). Using knowledge t o understand. I n “Proceedings of a Workshop on Theoretical Issues in Natural Language Processing” (R.Schank and B. L. Nash-Webber, eds.). Massachusetts Institute of Technology, Cambridge. Schank. R., Goldman, N., Rieger, C.. and Riesbeck. C. (1972). “Primitive Concepts Underlying Verbs ofThought” (AIM-162). Artificial Intelligence Lab., Stanford University, Stanford, California. Searle, B., Friend, J., and Suppes, P. (1976). “The Radio Mathematics Project: Nicaragua 1974-1975.” Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Smith, R. L., Graves, W. H., Blaine, L. H., and Marinov, V. G. (1975). Computer-assisted axiomatic mathematics: Informal rigor. I n “Computers in Education” (0.Lecarme and R. Lewis, eds.), pp. 803-809. IFIP, North-Holland, Amsterdam. Smith, S. T., and Sherwood, B. A. (1976). Educational uses of the PLAT0 computer system. Science 192, 344-352. Stevens, A. L., and Collins, A. (1977). “The Goal Structure o f a Socratic Tutor” (BBN Rep. 3518). Bolt, Beranek & Newman, Cambridge, Massachusetts. Stevens. A. L., Collins, A . , and Goldin, S. (1978). “Diagnosing Students Misconceptions in Causal Models” (BBN Rep. 3786). Bolt, Beranek & Newman, Cambridge, Masachusetts. Su, S . Y. W.. and Emam, A. E. (1975). Teaching software systems on a minicomputer: A
TRENDS IN COMPUTER-ASSISTED INSTRUCTION
229
CAI approach. I n “Computers in Education” (0. Lecarme and R. Lewis, eds.), pp. 223-229. IFIP, North-Holland, Amsterdam. Suppes, P. (1957). “Introduction to Logic.” Van Nostrand, New York. Suppes, P. (1%0). ”Axiomatic Set Theory.” Van Nostrand, New York. (Slightly revised edition published by Dover, New York, 1972.) Suppes, P. (1975). Impact of computers on curriculum in the schools and universities. In “Computers in Education” (0.Lecarme and R. Lewis, eds.), pp. 173-179. IFIP, NorthHolland, Amsterdam. Suppes, P. (1976). Elimination of quantifiers in the semantics of natural language by use of extended relation algebras. Rev. Inr. Philos. 117-118, 243-259. Suppes. P. (1979). Variable-free semantics for negations with prosodic variation. In “Essays in Honour of Jaakko Hintikka” (E. Sarinen, R. Hilpinen, I. Niiniluoto. and M. Provence Hintikka, eds.), pp. 49-59. Reidel, Dordrecht, The Netherlands. Suppes, P., and Macken, E. (1978). Steps toward a variable-free semantics of attributive adjectives, possessives, and intensifying adverbs. In “Children’s Language” (K. Nelson, ed.), Vol. 1, pp. 81-115. Gardner, New York. Suppes, P., and Morningstar, M. (1972). “Computer-assisted Instruction at Stanford, 196668: Data, Models, and Evaluation of the Arithmetic Programs.” Academic Press, New York. Suppes, P., Jerman, J., and Brian, D. (1968). “Computer-assisted Instruction: Stanford’s 1965-66 Arithmetic Program.” Academic Press, New York. Suppes, P., Fletcher, J. D., Zanotti, M., Lorton, P. V., Jr., and Searle, B. W. (1973). “Evaluation of Computer-assisted Instruction in Elementary Mathematics for Hearingimpaired Students” [TR 200 (Psych. and Educ. Ser.)]. Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Suppes. P., Searle, B. W., Kanz, G., and Clinton, J. P. M. (1975). “Teacher’s Handbook for Mathematics Strands, Grades 1-6” (rev. ed.). Computer Curriculum, Palo Alto, California. Suppes, P., Smith, R., and Beard, M. (1977). University-level computer-assisted instruction at Stanford: 1971-1975. Instruct. Sci. 6, 151-185. Suppes, P., Macken, E., and Zanotti, M. (1978). The role of global psychological models in instructional technology. In “Advances in Instructional Psychology” (R. Glaser, ed.), Vol. I, pp. 229-259. Erlbaum, Hillsdale, New Jersey. Vinsonhaler, J., and Bass, R. (1972). A summary of ten major studies of CAI drill and practice. Educ. Technol. 12, 29-32. VOTRAX Audio Response System VS-6.0 Operators Manual (n.d.). Federal Screw Works, Troy, Michigan. Wang, A. C., ed. (1978). “Index to Computer Based Learning.” Instructional Media Lab., University of Wisconsin, Milwaukee. Weiss, D. J., ed. (1978). “Proceedings of the 1977 Computerized Adaptive Testing Conference.” Psychometric Methods Program, Dept. of Psychology, University of Minnesota, Minneapolis. Winograd, T. (1972). “Understanding Natural Language.” Academic Press, New York. Woods, W. (1970). Transition network grammars for natural language analysis. Commun. Assoc. Comput. Much. 13 (10). 591-606. Woods, W. (1974). “Natural Language Communication with Computers” (BBN Rep. 1976). Vol. I . Bolt, Beranek & Newman, Cambridge, Massachusetts. Wu, E-Shi ( 1978). “Construction and Evaluation of a Computer-assisted Instruction Curriculum in Spoken Mandarin” [TR 298 (Psych. and Educ. ser.)]. Institute for Mathematical Studies in the Social Sciences, Stanford University, Stanford, California. Yob, G. (1975). Hunt the Wumpus. Creut. Comput. Sept.-Oct., 51-54.
This Page Intentionally Left Blank
Software in the Soviet Union: Progress and Problems S.
E. GOODMAN
Woodrow Wilson School of Public and International Affairs Princeton University
1. 2.
3.
4.
5.
Introduction . . . . . . . . . . . . . . . . . . . . . . . A Survey of Soviet Software . . . . . . . . . . . . . . . . 2. I Soviet Software before 1972 . . . . . . . . . . . . . . 2.2 Soviet Software since 1972 . . . . . . . . . . . . . . Systemic Factors . . . . . . . . . . . . . . . . . . . . . 3.1 Software in the Context of the Soviet Economic System . 3.2 Internal Diffusion . . . . . . . . . . . . . . . . . . 3.3 Stages in the Software Development Process . . . . . . 3.4 Manpower Development . . . . . . . . . . . . . . . Software Technology Transfer . . . . . . . . . . . . . . . 4 . I Mechanisms for Software Technology Transfer . . . . . 4.2 External Sources . . . . . . . . . . . . . . . . . . . 4.3 The Control of Software Technology Transfer . . . . . . ASummary . . . . . . . . . . . . . . . . . . . . . . . Acknowledgments and Disclaimer . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . . . . . . . .
231 233 233 239 249 249 256 261 265 268 269 213 215 278 281 281
1. Introduction
It is only within the last decade that the Soviets have really committed themselves to the production and use of complex general purpose computer systems on a scale large enough to pervade the national economy. This goal has made it necessary for the USSR to devote considerable effort to upgrading and expanding its software capabilities. This paper is an attempt to provide a broad perspective on software development in the USSR. To this end, it will be convenient to classify loosely the factors that affect the production and use of software in the Soviet Union in terms of four categories: ( 1 ) those that depend on hardware availability; 231 ('opyrighl
ADVANCES IN COMPUTERS. VOL 18
0 1Y79 hy Academic
Press. Inc.
All rights of reproduction in any form reserved. ISBN O - I 2 - O I ? I I R - ?
S . E. GOODMAN
(2) those that are related to priorities in the allocation of effort and other resources; (3) those that are dependent on the nature of Soviet institutions and economic practices, i.e., systemic factors; and (4) those that involve technology transfers from foreign sources. Although these categories are neither independent nor mutually exclusive, they provide a useful framework for a survey and analysis. We will try to show that the Soviets have made substantial progress in removing limitations due to hardware availability, some progress as a result of changes in priorities, and as yet relatively little progress in overcoming an assortment of complex systemic problems that affect the development of software. Consequently, the Soviets will continue to borrow from foreign software technology, and they are now better equipped and motivated to do so. Soviet software progress and problems cannot be understood on a technical basis alone. Relevant economic and political aspects have to be examined to present a more complete picture. The USSR has permeated technology and economics with politics, and our survey and analysis must discuss software in the context of this overall environment. Although the Soviet situation is extreme, it is not unique. Software engineering and management goes beyond the technical details of program code everywhere. I n the last dozen years, Western literature has contained many articles that deal with social and economic aspects of software (e.g., Infotech, 1972; Boehm, 1975; Bauer, 1975; Horowitz, 1975; Buxton et al., 1976; Infotech, 1976; Myers, 1976; Wegner, 1977). The national and international level discussions in this paper are logical extentions of this. We are so used to our own environment that most of us do not think about its advantages or disadvantages relative to other systemic arrangements. Any serious study of the Soviet software industry’ must involve some implicit and explicit comparisons with its US counterpart. In most aspects, the Soviets come out a poor second. This is because the peculiarities of the software sector tend to highlight Soviet weaknesses and American strengths. One should be careful not to extrapolate these comparisons over a broader economic spectrum. It is difficult enough to write about the development and economics of software under the best of circumstances. It is particularly difficult when coupled with the special problems that afflict the study of the USSR. To help come to grips with this combination, an effort has been made to use as many sources as possible. These include a couple of thousand books and articles from the open literature (newspapers, marketing brochures, I We shall use the term “software industry” to denote broadly the totality of a nation’s software capacity.
SOFTWARE IN THE SOVIET UNION
233
trade journals, research reports, the scientific and technical literature, etc., through Fall of 1978). Of course, spacial limitations restrict the references to a small fraction of these. Unfortunately, the limited availability of Soviet and East European source material in the US necessitates the use of less-than-ideal hand-me-downs of various kinds. It is thus likely that the bibliography contains more “bugs” (e.g., misspelled names) than most. I have also had the benefit of a large number of private communications. Assorted constraints make it necessary to limit most of the discussion to nonmilitary, general purpose computing. 2. A Survey of Soviet Software
During the last ten years the USSR and its CEMA2allies have designed, developed, and put into production a family of upward compatible thirdgeneration computers known as the Unified System (ES) or Ryad.“ This system is an effective functional duplication of the IBM S/360 series, and provides Soviet users with unprecedented quantities of reasonably good general purpose hardware. The development of the Unified System is a watershed in Soviet thinking on software, and it reflects a major commitment by the Party and government to the widespread use of digital computers in the national economy. The appearance of the first Ryad production models in 1972 marks a clear turning point in Soviet software development.
2.1 Soviet Software Before 1972‘ Although the USSR was the first country on continental Europe to build a working stored program digital computer (the MESM in 1951), and quickly put a model into serial production (the Strela in 1953), the Soviets have been slow to appreciate the value of computers for applications other than small- and medium-scale scientific/engineering computations. Little effort was made to produce large quantities of suitable hardware intended for widespread general purpose use. A business machines industry was essentially nonexistent, as was a body of consumers who had the per-
* The Council for Economic Mutual Assistance is composed primarily of Bulgaria, Czechoslovakia. German Democratic Republic (GDR), Hungary, Poland, and the USSR. Cuba, Mongolia, Romania, and Vietnam also have affiliations. ES is a transliterated abbreviation of Edinaya Sistema, the Russian for Unified System. The Cyrillic abbreviation and an alternate transliteration Yes are also commonly used. Language differences among the participating countries produce other variants; for example, the Polish abbreviation is JS. Ryad (alternate transliteration: Riad) is the Russian word for “row” or “series.” The prefix R is sometimes used to designate computer models. Broad coverage of Soviet software before Ryad can be found in First AU Conf. Prog. (1%8); Second AU Conf. Prog. ( 1970); Ershov (1969); Drexhage (1976); and Ershov and Shura-Bura (1976).
234
S . E. GOODMAN
ceived need and priority to obtain such equipment. Before the early 1960s the military and scientific/engineering communities were the only influential customers with an interest in computing. However both were less enamoured with computers than their American counterparts, and the Soviet industry developed only to the extent where it could respond to this relatively limited demand. By 1971 less than 20 of the approximately 60 known computer models had been serially produced with more than 100 units apiece (Rudins, 1970; Davis and Goodman, 1978). The vast majority of these were small- to medium-scale second-generation machines, some of which were still in production during the Ninth Five-Year Plan (197 1-75) (Myasnikov, 1977). As of 1971, there were less than 2000 medium- and large-scale secondgeneration machines in the USSR,5 in contrast with the much larger number and variety in the West. Furthermore, the West had many more smaller computers. For example, by late 1963 IBM had built 14,000 1400 series machines (OECD, 1969), almost twice the total number of computers in the USSR in 1970. Thus the population of experienced programmers in the USSR remained relatively small, and there was a particularly critical shortage of modern systems programmers who had worked on large, complex, multifaceted software systems. This was compounded by the failure of the Soviet educational system and the computer manufacturers to provide the kind of hands-on, intensive practical training that was common in the US. Two handicaps shared by all Soviet computer models were a lack of adequate primary storage and the state of peripheral technology (Ware, 1960; Godliba and Skovorodin, 1967; Judy, 1967; Rudins, 1970; Ershov and Shura-Bura, 1976). Installations usually had 1-32K words of core memory. The most reliable and commonly used forms of input/output were paper tape and typewriter console. Card readers, printers, and their associated paper products were of poor quality and reliability. Until the mid- 1960s alphanumeric printers and CRT displays were essentially nonexistent; printers were numeric and used narrow paper. Secondary storage was on poor quality tape and drum units. For all practical purposes, disk storage did not exist in the USSR until Ryad. Tapes could not reliably store information for much longer than a month. Additional reliability in input/output and secondary storage often had to be bought Most of these were Ural-14 (1%5), Minsk-32 (1%8), and M-222 (1%9) computers. Performance was in the 30-50K operations/sec range for scientific mixes. AU three machines were relative latecomers to the period under discussion. The largest Soviet computer built in quantity before 1977 was the BESM-6( 1 % ~comparable to the CDC 3600 in CPU performance (Ershov, 1975). Over 100 were in use by 1972. All four machines were in production during most of the Ninth Five-Year Plan.
SOFTWARE IN THE SOVIET UNION
235
through duplication of hardware or redundant storage of information. For example, the 16-track magnetic tapes for the Minsk-22fihad six tracks for data, two for parity checks, and the remaining eight tracks simply duplicated the first eight as an apparently necessary safeguard. Perhaps most importantly, Soviet peripherals did not offer convenient means for software exchange. Punched tape, with its limitations with regard to correcting and maintaining software, was more commonly used than punched cards. Magnetic tapes often could not be interchanged and used on two ostensibly identical tape drives. One consequence of this was that almost all programming was done in machine (binary) or assembly language. By the late 1960s translators for a few languages were available for all of the more popular computer models, but they were not generally used. A good compiler could take u p most of core, and the programmer could not get his program listed on his numeric printer anyway. Thus there was a strong bias that favored the “efficiency” of machine or assembly language programming. Clearly some of this bias arose from real considerations, but some of it reflected the same sort of dubious “professional” factors that perpetuate the use of assembly language in the West. It also helped make a skilled programmer a relatively rare and widely sought after employee in the USSR. Enterprises competing for talent would ingeniously create new job titles with higher benefits. General purpose data processing and industrial applications were retarded the most by computing conditions. A severe handicap, in addition to those already mentioned, was the lack of an upward compatible family of computers with variable word length. Efforts to create such a family, the Ural-10 (Ufal-11, -14, and -16) series and early ASVT models (M-1000, -2000, -3000), did not work out well (Davis and Goodman, 1978). The hardware situation and the use of machine language inhibited the development of software that would permit computers to be used for nonscientific applications by large numbers of people having little technical training. As a result, the hardware that did exist was often underutilized. The fact remains, however, that by 1970 the USSR contained between 7000 and 10,000 computers and they could not be used at all without software.? While this figure may be small when compared to the almost 40,000 installed computers in the United States in 1967 (OECD, 1969), it The Minsk machines were the yeoman general purpose computers in the USSR before Ryad, with a production span covering the period 1%2-1975. In addition to the Minsk-32, there were the earlier -2, -22, -22M, and -23 models (all rated at about 5K operations/sec). Well over 2000 of these machines were built and many of them are in use today. Our estimates of the Soviet computer inventory tend to be higher than most others, e.g., Berenyi (1970). Cave (1977).
S . E. GOODMAN
was still large enough to necessitate a substantial effort and commitment of skilled technical people. Much of the past Soviet systems software effort has been in programming languages. This is reflected in the large proportion of the open publications devoted to this area, and is consistent with the given hardware constraints, the relatively formal academic orientation of Soviet software research personnel, and the historical pattern followed in the West. Something like 50 different higher level languages can be identified from the literature. Many are experimental and have had virtually no impact beyond their development groups. Most of the more widely used pre-Ryad programming languages were based on ALGOL-60. The popularity of this language is understandable in light of the European role in its creation, the fact that most Soviet programmers have had extensive training in mathematics, and its intended use for scientific/engineering applications. Compiler development began in the early 1960s and ALGOL-60 became available for most computer models after 1963 (Ershov and Shura-Bura, 1976). FORTRAN was also available for at least the Minsk machines, the M-220, and the BESM-6 from the mid-to-late 1960s. Soviet use of ALGOL-60 has been characterized by a number of home-grown variants (Drexhage, 1976). ALGAMS and MALGOL are designed explicitly for use on slow, small-memory systems. ALGEC and ALGEM have supplementary features that make them more suitable but still not very convenient for use in economic applications. ALGOS appears to have been an experimental language for the description of computer systems. ALGOGCOBOL (Kitov er a/., 1968) is a clear hybrid for data processing. ALPHA (Ershov, 1966) and ANALITIK (Glushkov et al., 1971b) are nontrivial extensions, the latter for interactive numeric computations. There was essentially no subsequent revision of these languages after the appearance of ALGOL-68. A survey of the Soviet open literature on programming languages before 1970 reveals none that were particularly well suited for economic and industrial planning, business data processing, or large integrated systems like airline reservations or command and control systems. Attributes crucial to such applications, like good inputloutput and report generation capabilities, were just not available. For all practical purposes, the more widely used programming languages in the USSR during this period were only good for scientific and engineering computations. Interest in the more widely used United States programming languages was not insignificant before Ryad. FORTRAN was used at quite a few installations in the USSR and Eastern Europe. No fully satisfactory reason is apparent, but the Soviet software community was strong in its opposition to the use of COBOL before 1966. However, government interest in
SOFITVARE IN THE SOVIET UNION
237
general purpose data processing increased significantly during the Eighth Five-Year Plan (1966-1970), and serious attention has since been paid to COBOL (Myasnikov, 1972). This includes an early effort to set up a minimal compatible COBOL set for Soviet use (Babenko et al., 1968). Other languages, including SNOBOL and LISP, attracted scattered adherents. The Norwegian general purpose simulation language, SIMULA 67, also became fairly popular. Hardware limitations retarded the development and implementation of economically useful operating systems. Until the appearance of the BESM-6 in 1965, the simplicity and limited flexibility of the available CPUs and peripherals did not necessitate the development and use of sophisticated systems software. This was reinforced by the failure of computer manufacturers to develop and distribute such products and by the lack of support services for either software or hardware (Gladkov, 1970; Novikov, 1972). As a result, users had to develop all but the most basic utility programs to enable the installation to function adequately in a single program mode. Most programs could not be shared with other computer centers having the same CPU model because of local modifications that were made in the course of hardware self-maintenance and the lack of uniform peripheral equipment. Gradually, conditions and perceptions improved and a number of packages of utility routines were eventually put together for the more commonly used machines. Later, multiprogramming batch systems were built for the larger computers such as the Minsk-32, the Ural-11, - 14, and -16. At least three different operating systems were developed for the BESM-6. The multiplicity of BESM-6 system projects is partially the result of the nontransferability of any one system to all installations, and a lack of communication between installations. Some of these efforts appear to have been “crash” projects that did not permit the full utilization of the software development talent available. All of these systems are primitive by Western standards and did not appear until long after hardware deliveries had begun. We do not know how widely they are used or how well they are supported. Maintenance of even centrally developed systems was largely the responsibility of the user installation. As might be expected, Soviet attempts to develop time-sharing systems were severely constrained by hardware. The USSR was deficient in every aspect of hardware needed for this mode of computing. A further handicap was the poor state of supporting technology such as ground and satellite communications. Data transmission by telegraph line at 50- 150 bitshec is still common in the Soviet Union (Leonov, 1966; Kudryavsteva, 1976a). There were a few pre-Ryad time-sharing projects (Doncov, 1971). The
2 38
S. E. GOODMAN
best known of these are the AIST project in Novosibirsk and the Sirena airline passenger reservation system. Neither has done well (Doncov, 1971; Drexhage, 1976; Aviation Week, 1972). The BESM-6 operating system developed by the Institute of Applied Mathematics supported time sharing at the Academy of Sciences’ computer center in Moscow (Bakharev ef ul., 1970; Zadykhaylo et ul., 1970). It does not seem to have amounted to much either. Some strange little “time-sharing” systems (e.g., Bezhanova, 1970) were so limited as to be unworthy of the name. There have been a few experimental multimachine configurations. The best known of these were the aforementioned AIST system and the Minsk-222, which was based on an assortment of Minsk-2 and Minsk-22 computers (Barsamian, 1968; Evreinov and Kosarev, 1970). Both projects were characterized by what could only be described as naive optimism in the form of unwarranted extrapolations and fatal underestimations. With the exception of work in the area of scientific and technical computing, the open literature was notably lacking in descriptions of significant, implemented, and working applications software systems. No doubt some existed in security sensitive areas, and there is evidence that software was available to help control certain transportation networks, such as the national railway system (Petrov, 1969; Kharlonovich, 1971). However, one gets the strong impression that computers in the USSR were not being used to do much beyond straightforward highly localized tasks. The literature contained papers on the theoretical aspects of such applications as information systems, but this work was generally of a formal mathematical nature and contributed little to the actual implementation of major systems. But things would soon change. The 1960s was a period of political and economic reevaluation with respect to the need for expanding the general purpose computing capability of the USSR. Soviet economic planners were distressed by falling growth rates and the rising percentage of nonproductive (e.g., clerical) workers. They were also having trouble controlling the sheer immensity and complexity of the economy. The Soviets were becoming increasingly aware of the economic and industrial potential of computing, and they were not oblivious to what was being done in the West. Public discussion of the use of computers, which had been widespread since the late 1950s, began to be supplemented by very high level Party endorsements (Holland, I97 lb) and practical measures. Attention was directed toward such esthetically unexciting, but practically important, problems as the standardization of report forms, the elimination of human errors in data reporting, etc. The national economic planning process itself became a prime candidate for computerization (e.g., Glushkov, 1971a). Unlike the United States, which got into data process-
SOFTWARE IN THE SOVIET UNION
239
ing through an established business machines industry characterized by a dynamic, fairly low-level, customer-vendor feedback relationship, most of the driving force behind the entry of the USSR came via push from the top of the economic hierarchy. 2.2 Soviet Software Since 1972
The most important necessary condition for upgrading the state of general purpose computing in the USSR was the creation of a modern upward compatible family of computers with adequate quantities of primary memory and a suitable assortment of periphecals. The first public announcement of what was to become the Unified System of Computers (ES EVM) came in 1967 (Kazansky, 1967). Within two years, the Soviet Union had enlisted the aid of its CEMA partners, and the decision was made to try to duplicate functionally the IBM S/360 by using the same architecture, instruction set, and channel interfaces. The first production units of the Soviet-Bulgarian ES-1020 (20K operationdsec) were announced in early 1972. By the end of 1974, the Hungarian ES-1010 minicomputer, the Czech ES- 1021 (40K operations/ sec), the Soviet ES-1030 (lOOK operations/sec; a Polish version never went into serial production), and the GDR ES- I040 (320K operations/sec) were in production, providing the USSR and most of Eastern Europe with about 1000 small- and medium-scale machines per year as of late 1975. The two largest computers in the series were to suffer considerable delays. The ES-1050 (500 K operations/sec) would not go into production until 1975-1976, the ES-1060 ( I S M operations/sec) would not appear until late 1977 (Khatsenkov, 1977; Trud, 1978a). The 1010 and 1021 are not based on the S/360 architecture and are not program compatible with the other models. In addition to the basic CPU models, the CEMA countries have been producing a reasonable range of peripheral devices. Although most of this equipment is at the level of IBM products that existed during the second half of the 1960s, they represent a tremendous improvement over what was formerly available. A much more extensive discussion of Ryad can be found in Davis and Goodman (1978). The policy to use the IBM instruction set and interfaces was clearly based on software considerations. This was perceived to be the safest and most expedient way to meet the high-priority national objective of getting an upward compatible family of general purpose computers into productive use in the national economy. The Soviets had failed in two previous attempts to produce such a family, and they must have been aware of, and frightened by, the major problems IBM had with S/360 software. There was no serious interest in, or perceived need for, pushing
240
S . E. GOODMAN
the frontiers of the world state-of-the-art in computer technology. An obvious course of action was to use a tried and proven system from abroad. The clear choice was the IBM S/360. By appropriating the W360 operating systems, they would be in a position to borrow the huge quantities of systems and applications programs that had been developed by IBM and its customers over many years. This would do much to circumvent the poor state of Soviet software and permit immediate utilization of the hardware. Although it seems that the Soviets greatly underestimated the technical difficulties of this plan, it has been followed with considerable success and represents one of the most impressive technology acquisitions in Soviet history. There are several S/360 operating systems (e.g., IBM S/360, 1974), the two most important of which are the disk-oriented system DOS/360 and the much larger OS/360, which consists of several versions that together contain a few million instructions in a bewildering array of modules. A tremendous volume and variety of documentation and training aids are available for these systems. There was no effective way to deny either the software itself or the documentation to the CEMA countries. Much of this is in the public domain and can be sent anywhere without license. Sources of information include IBM itself, tens of thousands of user installations all over the world, and the open literature. Several CEMA countries have legally purchased some of the small- and medium-scale S/360 systems, which include the software and the opportunity to participate in SHARE, the major IBM user group. Soviet and East European computer scientists could also legitimately talk to Western counterparts at meetings, by using Western consultants, through exchange visits, etc. Furthermore, the Soviets have demonstrated that they can illegally obtain entire IBM computer systems if they are willing to try hard enough. DOSES is the Ryad adaptation of the IBM 9360 DOS disk-oriented operating system. From the available literature, we cannot identify any major DOS/ES features that are not part of DOS/360 (IBWDOS, 1971; ISOTIMPEX, 1973; IBM S/360, 1974; Drozdov er al., 1976; GDR, 1976; Vasyuchkova er al., 1977). Both systems are subdivided into control and processing programs. These further subdivide into supervisor, job control, initial program loader, linkage editor, librarian, sodmerge, utilities, and autotest modules. The DOS/360 system librarian includes a source statement library, a relocatable library, and a core image library, as does DOYES. Both will support up to one “background” partition in which programs are executed in stacked-job fashion, and two “foreground” partitions in which programs are operator initiated. Both support the same basic telecommunications access methods (BTAM and QTAM) and the same translators (assembler, FORTRAN, COBOL, PL/l, and RPG).
SOFTWARE IN THE SOVIET UNION
241
DOS/360 uses OLTEP (On Line Test Executive Program) to test input/ output units; DOS/ES also uses OLTEP. The level of DOS/ES appears to be at or near the level of the final DOW360 Release 26 of December 1971. Similarly, OWES appears to be an adaptation of OS/360. It has three basic modes: PCP (Primary Control Program with no multiprogramming capability), M R (Multiprogramming with a Fixed Number of Tasks), and MVT (Multiprogramming with a Variable Number of Tasks) (Larionov et al., 1973; Peledov and Raykov, 1975; 1977; GDR, 1976). All handle up to 15 independent tasks. OWES supports translators for FORTRAN levels G and H and ALGOL 60. The levels of OS/ES seem to be around the IBM MFT and MVT Release 21 of August 1972. OS/ES MFT requires a minimum of 128K bytes of primary storage; OS/ES MVT needs at least 25613 bytes (Naumov et al., 1975). OS/ES is mentioned much less frequently in the literature than DOS/ES. No doubt this reflects on the fact that the great majority of Ryads are at the lower end of the line. It may also indicate serious problems in adapting OW360 to the ES hardware and problems with the supply of adequate quantities of core storage (many ES systems were delivered with about half of the planned core memory capacity). It is possible that DOS/ES may have been the only Ryad operating system operationally available for a couple of years. The ES assembly language, job control language, and operating system macros are identical with those of S/360 (references in last two paragraphs; Larionov, 1974; Mitrofanov and Odintsov, 1977).The Soviet literature preserves the style of IBM software documentation. Assorted error codes, messages, console commands, and software diagnostics were originally in English and identical to those used by IBM. Such things have since become available in Cyrillic, but we do not know if these are standard options. English error codes, etc., still seem to prevail. Several observers who were very familiar with IBM S/360 systems software have been able to identify fine details in ES software that leave little doubt as to the source of the product and to the degree to which it was copied. It is as yet unclear exactly how program-compatible the Ryad family members are with each other or with IBM products. Some serious testing by CDC of their purchased ES-1040 indicates a high level of IBM compatibility (Koenig, 1976). IBM systems software could be loaded and run on the 1040 without much trouble. It is not known if the Soviet-made Ryad hardware is as directly compatible with IBM software. The Soviets are investing literally thousands of man-years in the development of the Ryad operating systems (Rakovsky, 1978b), but we really do not know what all these people are doing. Hardware differences between the S/360 and Unified System, and between the different models of the Unified
242
S.
E. GOODMAN
System, may have made it necessary to adapt the IBM operating systems to each of the ES models. Now that IBM no longer supports either DOS/360 or OS/360, the socialist countries are on their own as far as the maintenance and enhancement of the two systems is concerned. A recent “new version” is not especially impressive. The Scientific-Research Institute for Electronic Computers in Minsk, the institute that probably adapted DOS/360 to the ES-1020, came out with DOS-Z/ES in 1976 (Kudryavsteva, 1976a). The most notable additions to DOS are an emulator for the Minsk-32 and some performance monitoring software. We do not know to what extent these enhancements are built into the operating system. More generally, all of the ES operating systems have gone through several releases since they were introduced. We cannot really tell to what extent this reflects the addition of significant capability enhancements, academic (i.e., noncost effective) design optimizing perturbations, or simple accumulations of fixes. We suspect that the Soviets try not to tamper with the operating systems unless they have to in order to get them to function adequately. This may have been the case with an announced real-time supervisor known as SRV, an OS/ES coresident program for providing fast response in a real-time environment. SRV seems to be an adaptation of the IBM S/360 Real-Time Monitor (IBM RTM, 1970; Naumov, 1976), but, unlike the situations with DOS and OS, there are substantial differences. The first USSR State Prize to be awarded for practical software work was announced at the end of 1978 (Trud, 1978b). In some ways it is remarkable that it took this long for the Soviet scientific and technical community to recognize the importance of software. The award was made for the Ryad operating systems. Not surprisingly, neither IBM nor people like F. P. Brooks, Jr., were named as co-winners. It is important not to underestimate the achievements of the CEMA computer scientists in functionally duplicating S/360. They have mastered the quantity production of reasonably modem hardware and they did succeed in the formidable task of adapting the S/360 operating systems to this hardware. This is not to say that they did not have considerable help from external sources, or that they did a good, or fast, or imaginativejob. In fact, the effort took them about as long as it took IBM in the first place, and they have yet to achieve S/360 quality and reliability standards across the Unified System product line. Nevertheless, they had the talent and resources to achieve the basic goals and, relative to their own past, they have acquired a much enhanced indigenous computing capability. Between 1975 and 1977, the CEMA countries came out with several “interim” Ryad models that are essentially evolutionary upgrades of
SOFTWARE IN THE SOVIET UNION
243
some of the earlier machines. These include the Hungarian ES-1012 (another mini), the Soviet-Bulgarian ES- 1022 (80K operations/sec), the Polish ES-1032 (200K operations/sec-the “real” Polish 1030), and the Soviet ES-1033 (200K operations/sec). In addition to these new CPU models, the CEM’A countries have been producing a small, but steady, stream of new peripheral equipment (CSTAC 11, 1978). Although the current peripheral situation is much improved over the pre-Ryad era, complaints about shortages of peripheral devices and their associated paper products are still common (Lapshin, 1976; Ashastin, 1977; SovMold, 1978; Zhimerin, 1978). The best evidence that the CEMA nations are basically satisfied with the policy of copying the IBM product line is the current effort to develop a new group of Ryad-2 models that are clearly intended to be a functional duplication of the IBM S/370 family (IBM S/370, 1976; Bratukhin et NI., 1976; CSTAC 11, 1978; Davis and Goodman, 1978). By early 1977 most of the new models were well into the design stage. By the end of 1978, the Soviet ES-1035 was claimed to be in production (Sarapkin, 1978) and prototypes for at least the GDR ES-1055 (Robotron, 1978) and the Soviet ES- 1045 (Kornrnunist, 1978) existed. The appearance of other prototypes and the initiation of serial production will probably be scattered over 1979-1982. A Ryad-3 project was recently announced (Pleshakov, 1978), but almost no details are available. S/37@like features to be made available in the new Ryad-2 models include larger primary memory, semiconductor primary memory, virtual-storage capabilities, block-multiplexor channels, relocatable control storage, improved peripherals, and expanded timing and protection facilities. There are also plans for dual-processor systems and greatly expanded teleprocessing capabilities. It is not clear if the Soviets intend to use the IBM S/370 operating systems to the same extent as they did those for S/360, or if they plan to build the Ryad-2 operating systems on the Ryad-1 OWES base. M. E. Rakovsky, a vice-chairman of the USSR State Planning Committee (Gosplan) and one of the highest ranking Soviet officials to be directly involved in the Ryad project on a continuing basis, has stated that “developing the Unified System’s Ryad-1 operating software to the point where it will handle all the functional capabilities of the Unified System’s higher-level Ryad-2 system will take between 1600 and 2000 man-years.” He goes on to say that this effort will be carried out at “two institutes that employ a total of about 450 programmers” (Rakovsky, 1978b). There is also some reason to believe that GDR Robotron’s new virtual operating system OS/ES 6.0 for the ES-1055 may be more of an original effort than was the ES-1040 operating system. Emulators have been announced as
244
S. E. GOODMAN
part of the initial offerings for the two most advanced of the Ryad-2 models: one for running programs for DOS/ES on the 1055 (Dittert, 1978), and one for Minsk-32 programs on the 1035 (Kudryavsteva, 1976b). The Unified System project has by no means absorbed the entire Soviet computer industry although this may seem to be the case since most of what appears in the Communist literature relates to Ryad. The joint CEMA effort has forced the Soviets to be more open about computer developments. The focus is on Ryad because it is by far the largest project and many of the others are officially classified. With respect to mainframe computers, the Unified System has roughly the same relative standing in the USSR as the IBM 360/370 series has in the United States; although most of the Soviet non-Ryad mainframes are smaller second-generation computers, whereas in the United States most of the non-IBM mainframes are technically competitive CDC, UNIVAC, Burroughs, etc., models. The most extensive, openly announced non-Ryad production is primarily in the form of assorted machines built by the Ministry of Instrument Construction, Means of Automation, and Control Systems (Minpribor). Many are part of the ASVT series: M-4030, M-5000, M-6000, M-7000, M-400, M-40, and, most recently, the M-4030-1 (Naroditskaya, 1977). The medium-scale M-4030 is compatible with the Ryad family at the operating 1975). The other models are minicomputers, system level (Betelin et d., the first of which, the M-5000 and M-6000, appeared in 1972-1973. The USSR also relies on imports from Hungary, Poland, and the United States to meet some of its minineeds. The ASVT line is widely used in Soviet industry and the literature indicates that a considerable amount of software has been developed for these machines. A great deal of substantive minicomputer related R&D is done in the Baltic states (e.g., SovEst, 1978). A joint CEMA effort is currently in progress to consolidate the scattered member nation minicomputer activities by establishing a new SM (Sistema Malykh-Small System) family (Naumov, 1977). Of the four announced machines, the SM-I, -2, -3, and -4 (SM-5 and -6 announcements are expected in 1979), at least the first three were in production by mid1978. Early indications are that a substantial amount of general purpose SM software is available, and that some form of ASVT program compatibility is possible (Filinov and Semik, 1977; Rezanov and Kostelyansky, 1977; TECHMASHEXPORT 1978a,b). These minis can be used with much of the peripheral equipment that has been developed for Ryad and ASVT.
Large scientific computers are under advanced development at the Institute of Precise Mechanics and Computer Engineering in Moscow, the developers of the BESM machines. Recently announced were the El'brus-1 and -2 (named after the highest mountain in Europe) (Burtsev,
SOFTWARE IN THE SOVIET UNION
245
1978; MosPrav, 1978). The El’brus-1 is thought to be based on the Burroughs architecture (Burtsev, 1975). This architecture is particularly well suited for ALGOL programming, the language greatly favored by Soviet computer scientists and scientific programmers. The El’brus-2 may be a loosely coupled collection of El’brus- 1 machines. Past experience makes it likely that the Institute of Applied Mathematics in Moscow will participate in the development of its systems software. The new large computers will probably be produced in small numbers and many of these will be used at military and other restricted installations. The majority will eventually displace BESM-~S,so a BESM-6 emulator is likely to be an important element in early El’brus software offerings. By the time El’brus deliveries start, the receiving installations will have been using their BESM-6s for up to 15 yr. There will be considerable resistance to program conversion. In addition to these large projects, there are a number of scattered smaller efforts that we know about. These include a few complete computer systems like the new line of RUTA models (Kasyukov, 1977) and the Nairi-4 (Meliksetyan, 1976), work on microcomputers [e.g., the SS-11 being built in Armenia (Kommunkt, 1977)], and some hand-held “programmed keyboard computers” [e.g., the Electronika BZ-21 being built in Kiev (Trud, 1977)l. We do not know anything about the software that is being developed for these relatively unimportant machines, but it would not be surprising if the software offerings to early purchasers were very meager. Work on highly modular recursive machines is currently in a rudimentary stage in both the US and USSR (Glushkov et al., 1974; EE Times, 1977). We have essentially no information on Soviet efforts to develop software for machines with this architecture. Relative to their pre-Ryad past, the Soviets have clearly come a long way in correcting hardware and systems software deficiencies. There are now 25,000-30,000 computers in the USSR and at least half of them are respectably modem systems. The Unified System and the ASVT-4030, in particular, provide a large, common hardware and systems software base. But how productive have these machines been, and how well have they been integrated into the fiber of the national economy? There is no question that the Soviets and their CEMA partners have given high priority to the use of computing as an important means to help modernize the economy and increase factor productivity. Indeed, the production of a large number of industrially useful programs began with the delivery of the first ES units. There are visions of great efficiencies to be achieved from the partition of this activity among the member countries (Rakovsky, 1978a), but since the various Eastern European economies differ considerably at the microeconomic level, one might well entertain doubts as to how well this will work out. The availability of ES and ASVT hardware has resulted in something of
246
S. E. GOODMAN
a minor software explosion. But this hardware is still backward by world standards. More important, the experience and personnel base necessary for the development of either large world-standard state-of-the-art software systems or large numbers of low-level everyday data processing programs is not something that can be put together in a short period. And perhaps, in the light of past Western practices, Soviet institutional structure tends to inhibit the customer-oriented design, development, and diffusion of software (see Section 3). By far, the most extensive and prominent software activity in the USSR relates to what are collectively called automated controllmanagementsystems (ASU). The ASU spectrum runs from the simple no-direct-control monitoring of a small production process to a grand national automated data system for planning and controlling the economy of the Soviet Union. A broad range of economichndustrialASUs is listed in Pevnev (1976). The creation of ASUs has become a major nationwide undertaking (e.g., Ekongaz, 1976; Zhimerin, 1978) and there are now literally hundreds of articles and books on ASUs appearing in the Soviet literature. A small sample of recent, general books includes Kuzin and Shohukin (1976), Pevnev (1976, which gives the best overall perspective), Pirmukhamedov (1976), Liberman (1978), and Mamikonov er a/. (1978). Descriptions of specific ASUs under development and more general articles on the subindustriya, ject often appear in the periodicals S~tsialistiche.~k~iya Ekonomicheskaya gazetu, and Pribory i sistemy upravleniya. A large number of industry-specific publications and the public press media also frequently carry articles on ASUs. Although a great many articles describing a great many ASUs have appeared, by US standards these articles give little substantive information. It is thus difficult to do much more than list a lot of specific ASUs (the reader will be spared this) or present some tentative general observations. The Soviet interest in ASUs at all levels is genuine and serious. ASUs are being pushed vigorously from above, and there is a certain amount of desire at every level of the economic hierarchy to be part of the movement. Two major obstacles to the successful infusion of ASUs into the economy are the resistance of management, who are comfortable in their preautomation environment, and the inexperience of Soviet computer scientists and programmers. The Soviets have been making steady progress in overcoming both problems. Industrial managers are beginning to appreciate the potential of computers for doing tasks that people do not enjoy, but which need to be done, and the software specialists are beginning to think more realistically about simple, useful systems that are within their capabilities to build. This gradual convergence seems to be getting a lot of small systems built and used. With few exceptions (Myas-
SOFIWARE IN THE SOVIET UNION
247
nikov, 1974), it appears that most of this software is not widely disseminated, but used only locally (e.g., Zhimerin, 1978). None of this work is particularly imaginative by US standards, but there is no reason to expect it to be. As we shall discuss at greater length in the next section, the Soviet economic environment is conservative and introverted. The Soviets are cautiously and independently repeating much of the learning experience that took place in the US in the late 1950s and 1960s. It would be surprising if they were doing anything else. The Soviets continue to expend considerable local effort on software for second-generation machines. Much of what is reported in the open literature is for the Minsk-32 (e.g., Kulakovskaya et a / . , 1973; Zhukov, 1976; Vodnyy transport, 1977), but this must be true more generally since almost half of the computers in use in the USSR are of pre-Ryad manufacture. The appropriation of most of S/360’s software has eroded the past ALGOL orientation of high-level programming in the USSR. FORTRAN and PL/1 are now widely used. The government has pushed COBOL since 1%9 and, given the emphasis on economic applications, it is not inconceivable that it could become the most widely used nonscientific language in the Soviet Union. Assorted CEMA computer centers have used LISP, SNOBOL, PASCAL, etc., and these languages will find their local advocates at Ryad installations. SIMULA-67 is an important simulation language (Shnayderman et d.,1977). So far, we have seen little of the Soviet-designed high-level languages on ES systems, although Ryad translators for some of these do exist. Most of what is done with regard to these languages may be intended to prolong the usefulness of programs written for second-generation computers, or to permit users to remain in the familiar and comfortable environment of these older machines. This would explain why ALGAMS, an ALGOL-60 variant explicitly intended for slow machines with small primary memories, has been made available as an option with DOS/ES (Borodich et a / . , 1977). Although frequent allusions to time-sharing systems appear in the Soviet literature (e.g., Bratukhin et a / . , 1976; Drozdov et a / . , 1976; SovRoss, 1976), it is not clear what is readily available and used. None of the Ryad-1 or interim models has virtual storage, and storage capacities are marginal. Much of the telephone system in the USSR is not up to supporting the reliable transmission of large volumes of information beyond a few kilometers. We have seen no explicit mention of the TSO (time-sharing option) extension of OS/360 MVT, which IBM announced in November 1969. Not one of the 20 large “time-sharing centers” scheduled for completion in 1975 was fully operational by early 1977 (Rakovsky, 1977). Now the goal is to have six by 1980 (Zhimerin, 1978). User demand for time
248
S. E. GOODMAN
sharing has only recently become serious enough to motivate more than academic exercises. The development of suitable hardware and software is currently being pursued (e.g., Bespalov and Strizhkov, 1978; Pervyshin, 1978), but most of this seems to be in rudimentary stages of development. Several experimental systems appear to be operational, and the ES-1033 with time-sharing capabilities has been advertised for sale in India (ElorgKomputronics, 1978) using OSlES. However, widespread time-sharing use seems unlikely as long as most Ryad installations are equipped to use only DOS/ES. The enhanced capabilities expected with the Ryad-2 models should bring further progress. There is considerable interest in database management systems (DBMS) in the USSR. Much of the work that is described as operational seems to be in the form of very low level, and localized, information retrieval systems. In the past, Soviet work in this area was severely constrained by a lack of disk and other secondary storage equipment, and by the poor state of I/O technology. Ryad and other developments have eased this situation somewhat, but there are still serious limitations. For example, most Soviet installations are still equipped with only 6-8 7.25 Mbyte IBM 231 I-like disk configurations that do not allow the interleaving of data transfers. IBM 3330-like disk drives are expected to be available in moderate quantities for nonspecial (i.e., nonmilitary or non-Party) users in 1979-1980. The new capabilities expected with Ryad-2 models, especially block-multiplexor channels, should also be helpful. Poland, the GDR, and the USSR are developing several DBMS based on Codasyl. The Soviet system is called OKA and was developed at the Institute of Cybernetics in Kiev (Andon et al., 1977). OKA runs on OWES 4.0 (MFT and MVT) and has both a batch- and time-sharing mode. OKA is currently being field tested at at least one unknown installation. There is an All-Union working group following Codasyl in the USSR. The Institute of Cybernetics in Kiev is working on two systems patterned after IBM IMS-2 and the experimental IBM relational DBMS System-R. The Soviet relational DBMS is called PALMA. The Soviets have been developing several specialized DBMS. Most of the publicly acknowledged work is oriented toward economic planning, including a system that is being field-tested by Gosplan. Soviet journals are filled with the description of experimental programming systems of various sorts. The relatively new (1975) journal Progrurnmirovanie has become one of the most academically prestigious outlets for this work. It also seems to be the only major, regularly published, openly available, Soviet journal devoted exclusively to research in programming and software, although other journals, e.g., Upravlyayuschiye sistemy i mtishiny, often contain informative articles. Few of these
SOFTWARE IN THE SOVIET UNION
249
articles are at the world state-of-the-art in software research (articles on Minsk-32 software appear with some regularity), and the theoretical work being done and the experimental systems being described seem consistent with the overall level of Soviet computing compared to that of the West and Japan. As far as we can tell, none of these products of Soviet research were offered as standard options with the early Ryad computers. Although many of these programming systems are being built to run on Ryads, it is not clear to what extent they are intended to become standard software options. It is important to emphasize that we currently have a rather poor overall picture of how well or how extensively the Soviets have been using the software they have announced, or even what they have had for a long time. The lack of publications like Datamution, the very limited access we have had to Soviet installations, etc., make it difficult to say much more than we have. 3. Systemic Factors
In spite of the real progress and future promise offered by improved hardware availability and official recognition and support, there are some deeply rooted systemic problems that will continue to constrain severely the development of the Soviet software industry. 3.1 Software in the Context of the Soviet Economic System*
To a first approximation, the Soviet government/economy is organized in a hierarchical, treelike structure. The highest level node in the tree is the Council of Ministers (COM). The next levels represent a few score ministries, state committees, and other high administrative agencies. Then there are intermediate levels of Republic, branch, and department administration and management. Finally, the lower levels contain the institutes and enterprises that are responsible for R&D and the production and distribution of goods and services. This is a large bureaucratic hierarchy that encompasses every economic aspect of Soviet society. As a result of this vertical structure, and a very long and strong Russian bureaucratic tradition, much of the Soviet economy is unofficially partitioned into assorted domains or fiefdoms. These exist along ministerial, geographical, and personality divisions. People and institutions in this structure genera Some general background references for this subsection include Granick ( l % l ) , Nove (1969). Bornstein and Fusfeld (l974), Kaiser (1976). Smith (1977), Berliner (1976), and Amann er a / . (1977).
250
S. E. GOODMAN
ally develop behavior patterns that please the higher level nodes in their domains.BThis behavior may or may not coincide with the goal of providing high-quality service or products to customers. Superimposed over this vertical hierarchy are a variety of horizontal relationships. The domains are not self-sufficient. In addition to directions from above, they get supplies and services from units in other domains and they, in turn, supply goods and services elsewhere. The centralized planning apparatus, in collaboration with other levels in the hierarchy, establishes suppliers and customers for almost every Soviet institute and enterprise. Although there is some flexibility in establishing these horizontal relationships, they are for the most part beyond the control of lower level management. One of the most important of the self-assigned tasks of the Communist Party is to expedite all sorts of government and economic activity. The Party intercedes to get things done. Although the Party organization is also subdivided into fiefdoms, it is more tightly controlled and operates freely across governmentleconomic domains. Finally, there are the unofficial, sometimes illegal, horizontal arrangements that are often created to enable an enterprise to function successfully in spite of everything else. In the centrally planned Soviet economy, there is no market or quasimarket mechanism to determine prices, producthervice mixes, rewards, etc. For the most part, all of this is worked out at high levels and by a centrally controlled haggling process, although lower level management has been granted some degree of flexibility by gradual reforms since 1%5. In this system quantity is stressed over quality, and production is stressed over service. Enterprises are told what to do. Failure to meet these imposed commitments can bring stif€ penalties. Success is rewarded, but there is little opportunity for the high-risk, big-payoff, innovative entrepreneurial activity that is common in the US. The central planners do not like much activity of this sort because it is difficult to control. The business practices that have evolved in this environment are not surprising. Enterprises are oriented toward the basic goal of fulfilling the performance indices that are given to them. These are usually narrowly defined quantitative quotas. Thus, for example, a computer producer's most important index may be the number of CPUs manufactured and a less important index may be the number of peripheral devices built. Rewards are paid for meeting the basic goals and for overfulfillment. Lists of suppliers and customers are provided by the planners. Plant management Of course, this behavior is not unique to the Soviet bureaucracy. It is characteristic of many bureaucracies, including most (if not all) of the US Government. However, in the USSR it is much more pervasive and there is no alternative to being part of this system. @
SOFTWARE IN THE SOVIET UNION
251
will obviously give first priority to meeting the CPU production norm, then priority goes to the peripherals. They do not want to overdo things, because this year's successes may become next year's quotas. Furthermore, it is clearly in their own best interests to haggle with the planners for low quotas. Since customer satisfaction is of relatively minor importance (particularly if the customer is far away or under another ministry), management is not going to divert its resources to installation and maintenance unless it absolutely has to. There is also an obvious incentive to try to retain the status quo. Once a plant operation has started to function smoothly, there is no market pressure to force innovation, improved service, and new products, All these things mean finding new suppliers, changing equipment, and retraining personnel. They involve serious risk, and local management cannot control prices or suppliers to balance the risk. There are strengths in this system. Central control and the powerful expediting role of the Party allow national resources to be concentrated in high-priority areas. The differences between the Minsk machines and Ryad show that much can be done on a respectably large scale once the high-level decisions have been made. Apathy disappears and labor quality improves on priority undertakings. Of course, the government and Party do not have the resources and cannot maintain enough pressure to do this sort of thing across the entire economy. Furthermore, it can be argued that some of this high-priority success occurs because these projects are really removed from the economic mainstream. Software development would seem to circumvent some of the systemic difficulties that plague other products. Once the basic hardware exists at an installation, software work does not depend to any great extent on a continuing and timely flow of material supply from outside sources. Not surprisingly, Soviet enterprises have a tendency to avoid intercourse with and dependence on the outside. It would seem easier to develop an inhouse software capability than one for spare parts or raw materials. It would also seem that commercial software houses would be able to provide better service than, say, a hardware maintenance group. The software house is not in the middle of a supply chain, the hardware maintenance group is. Since the software industry does not involve the distribution of material products, more casual horizontal vendorcustomer relationships would be expected to be less troublesome for the central planners. Finally, the problem of the mass production of copies of a finished product is reduced almost to the point of nonexistence. It would thus seem that software has been singularly blessed at both the macro- and microeconomic levels in the USSR. But high-level policy statements are not always easy to translate into practice, and the firm-
252
S. E. GOODMAN
level advantages just described may be less advantageous than they appear. The development of a broad national software capability is not like the development of a capability to build computing hardware or armored personnel carriers. The nature of software development places considerable emphasis on traditional Soviet economic weaknesses and is not well suited to the “annual plan” form of management that is dominant in the USSR. Before Ryad, hardware manufacturers did little to produce, upgrade, or distribute software. Few models existed in sufficient numbers to make possible a common software base of real economic importance. Repeated attempts to form user groups produced limited successes. Soviet security constraints restricted participation in sharing software for some models. Enterprises rarely exchanged programs. Contracts with research institutes to produce software products were often frustrating for the customer (e.g., Novikov, 1978). The research institute staff would be content with a prototype system that was not well tailored to the customer’s needs. Most users had little recourse but to modify and maintain the programs on their own. Conditions are gradually improving, but changes take time even where they are possible. One promising reform has been the establishment of the corporationlike production associations (Berliner, 1976; Gorlin, 1976).1° These support the creation of relatively large and efficient computer centers that should be able to better serve the needs of the association and its component enterprises. The association may contain a research institute with its own software group. On the surface, at least, an association appears to be a more viable unit for the production and utilization of software, and one that might be able to deal more effectively with other firms. However, seemingly reasonable reforms in the past have actually produced results opposite those that were intended (e.g., Parrott, 1977). It is as yet too early to evaluate the impact of this reorganization, either in general or with respect to software development. In the US there are a large number of companies that provide professional software services to customers. They range in size from giants like IBM to one-man firms. Some build systems and then convince users to buy them. Others ascertain customer needs, and then arrange to satisfy them. A variety of other services are also offered. Basically they are all trying to make a profit by showing their customers how to better utilize computers. To a considerable extent, the software vendors and service bureaus have created a market for themselves through aggressive selling and the competitive, customer-oriented, development of general purpose l o It is worth noting that enterprises engaged in the development of computer hardware were organized in loose research-production associations before they became generally fashionable.
SOFTWARE IN THE SOVIET UNION
253
and tailor-made products. There is probably no other sector of the American economy with such a rapid rate of incremental innovation.” The best firms make fortunes, the worst go out of business. Adam Smith would have been overjoyed with this industry. The Soviets appear to have no real counterpart to these firms for the customer-oriented design, development, diffusion, and maintenance of software. One enterprise, the Tsentroprogrammsistem ScientificProduction Association in Kalinin, has been publicly identified as a producer of ES user software (Izmaylov, 1976; Ashastin, 1977; Myasnikov, 1977). This organization is under Minpribor. We assume that the Ministry of the Radio Industry, the manufacturer of Ryad in the USSR, has some central software facilities available because of legal responsibilities. Some research institutes, computer factories, and local organizations develop and service software, but complaints about their work is common (e.g., Zhimerin, 1978) and praise is rare. We know little about what any of these places are doing or how they function. The average Soviet computer user does not seem to have many places it can turn to for help. This is particularly true of installations that are not near major metropolitan areas (e.g., Davidzon, 1971; Letov, 1975; ZarVos, 1976). The mere fact that we know so little about Soviet software firms is strong evidence that the volume and pace of their activities must be much below that of the American companies, or at least that benefits to users are limited by a lack of readily available information. Most American computer users are not very sophisticated and need to have their hands held by vendors and service companies. Most Soviet users are less sophisticated. It is inconceivable that the USSR has anything comparable to the American software companies that we do not know about, because then there is no way for the thousands of computer users in the Soviet Union to know about such services either. It is simply not the sort of thing that can be successfully carried on in secret. It must advertise in some way or it will not reach its customers. Soviet installations are now pretty much on their own with regard to applications software. The open literature seems to confirm this with articles on how “Such-and-Such Production Enterprise’’ built an applications system for itself. There are few articles on how some research institute built something like a database management system that is now being used at scores of installations in a variety of ways. Currently, Soviet installations are building lots of fairly obvious local systems. This pace may actually slow down once these are up and running because there are few effective mechanisms for showing users what they might do next. Unfortunately, there appears to be no study of the US software industry that would enable us to be more specific.
S . E. GOODMAN
Considerable potential for improvement exists. Although there do not seem to be many commercially developed software products in widespread, operational use, there have been quite a few articles on ASUs that are being developed with this goal (e.g., Bobko, 1977). Many of these are for management information systems intended for general or industryspecific users. There is high-level push for standardization of ASUs and the increased commercialization of software (Myasnikov, 1976; Zhimerin, 1978). Sooner or later, as they gain experience, some of the industrial and academic institutes that are doing software work will evolve into viable software houses. There are other possibilities. Right now computer installations are building up in-house software capabilities to meet their own needs. After a while there is bound to be some local surpluses of various kinds. We might see the gradual development of an unplanned trade in software products and programmers among enterprises. This sort of trading goes on all over the economy, and there is substantial opportunity for software. Finally, it is not inconceivable that a little unofficial free enterprise might evolve, as it does in plumbing and medicine. Small groups of bright young programmers might start soliciting moonlighting tasks. The extent of the software service problem may go beyond applications software. We know little about how new operating systems releases are maintained or distributed to users, although in 1976 the All-Union Association Soyuz EVM Komplex was established, along with local affiliates like Zapad EVM Komplex in the Ukraine and Moldavia, to service centrally both hardware and software (Trofimchuk, 1977). We do not know who produces the new releases or how changes are made. The Soviets are not in the habit of soliciting or seriously considering a broad spectrum of customer feedback. The research institutes that maintain the ES operating systems may only communicate with a few prestigious computer centers. New releases are probably sent on tape to users12who are not likely to get much help should local problems arise. New releases may well necessitate considerable local reprogramming, particularly if the users modify the systems software to their own needs. Once an installation gets an operating system to work, there is a tendency to freeze it forever (Reifer, 1978). There is a widespread users’ attitude that accepts the software service situation and is thus a major obstacle to progress. The legendary tradition for endurance of the Russian people, and the vertical structure and shortage of resources that strongly favor the vendor’s position, makes poor service a chronic and pervasive feature of life in the USSR. Improvement in the service aspects of the computer industry are taking place more slowly than are improvements in production. Most Soviet users can do I* This is actually an optimistic assumption. There is no evidence that new releases are not sent in a printed form that might require a major effort by users to put up on their machines.
SOFTWARE IN THE SOVIET UNION
255
little more than complain (complaints that would get at the core of the problem are politically unacceptable), and wait until the leadership perceives that the problem is serious enough to do something constructive. The Soviet Union has no counterparts to the market power of the average consumer and the flexibility for creating mutually desirable business arrangements that have built up the impressive commercial software industry in the United States. The introduction of computers into Soviet management practice has been coming along slowly. Conservative applications, like accounting systems, seem to be the rule. The use of simple management information and process control systems is gradually increasing. Although there is some Soviet research on the utilization of computer techniques for decision analysis and modeling management problems (Ivanenko, 1977), little seems to be put into practice. Soviet managers tend to be older and more inhibited than their American counterparts. The system in which they work stresses straightforward production rather than innovation and marketing decisions. Soviet economic modeling and simulation activity stress the necessity of reaching a “correct socialist solution,” and is not oriented toward being alert for general and unexpected possibilities in a problem situation. Furthermore, Soviet industry has learned not to trust its own statistics, and there may be a big difference between “official” and actual business practice. What does one do with a computer system for the “official” operational management of an enterprise when actual practice is different‘?Does one dare use the computer to help manage “expediter” slush funds, under-the-counter deals with other firms? A recent case indicates that these are serious problems (Novikov, 1978; WashPost, 1978). Soviet programmers may be in an odd position with respect to industrial management. It is not clear that the managers know what to do with them. Firms are oriented toward plan fulfillment; they are not as information oriented as their American counterparts. The work of a programmer is often not directly related to the enterprise’s plan, nor is his function as readily perceived as that of, say, a secretary or janitor. Management has to figure out what to do with these people and somehow measure their value to the enterprise. This is a big burden, and many of the older, highly politicized industrial managers are probably not up to doing this well. It will take the Soviets at least as long to learn to use their machines effectively as it took us.13 The USSR can claim what is potentially the world’s largest management application-an ASU for planning the entire Soviet economy l3 Americans should be reminded that some US management groups behaved similarly during the 1950s. The insurance industry, now among the largest and most committed computer users, is a notable case in point.
256
S. E. GOODMAN
(OGAS). The Soviets have been talking about a network of computer centers for this purpose since the late 1950s. An often cited plan calls for a hierarchy consisting of a main Gosplan center in Moscow, 80 regional centers, and 4000 local centers (Chevignard, 1975). Data will be consolidated upward and plans will be passed downward in this treelike structure. The literature on the subject is large, and this is neither the place to review nor to analyze the project except to comment briefly on some software-related aspects. On the surface, of course, it is ridiculous for the Soviets to talk about such an undertaking when data communication between computer centers often takes the form of someone carrying a deck of cards crosstown on a bus. The Soviets do not understand the operation of their own planning practices well enough to write down a useful set of specifications for the super software system that would be necessary to support such a large, highly integrated, and comprehensive network. The system is primarily a political football that is being struggled over by Gosplan and the Central Statistical Administration. From a software standpoint, it has helped them to start thinking, in some detail, about important problems like standardization, documentation, data-reporting procedures and formats, and the usefulness of their own statistics (Ekongaz, 1977). It has also spurred considerable investment in an assortment of data-processing systems. These products are useful and the experience is desperately needed. 3.2 Internal Diffusion
Before Ryad, the dissemination of software products and services was accomplished through a variety of mechanisms including national and regional program libraries, user groups, and informal trades. None of this was particularly effective or well organized [see references listed on p. 112 of Davis and Goodman (1978)l. For example, some libraries were little more than mail-in depositories that were not properly staffed, indexed, or quality controlled (Dyachenko, 1970; Galeev, 1973). The development of the Unified System was accompanied by a greater appreciation of the limitations of part practices. Ryad hardware would be pitifully underutilized if each user installation were left with an almost empty machine and expected to do all its own programming. This would have defeated the whole purpose of the new system. The creation of the Unified System, with its common hardware and software base, is a major step in the alleviation of the technical difficulties of portability-the transfer of software from one installation to another. The hardware mixes and self-maintenancepractices of the pre-Ryad days were severe limitations to portability. It should be noted however that this
SOFTWARE IN THE SOVIET UNION
257
in itself does not guarantee portability of systems. Programs developed at one IBM 360 installation in the West are not necessarily trivially transferable to another. Local differences in hardware and softwareincluding differences in operating systems-may make this difficult. Ryad marks a singular development in Soviet computing history: Its vendors are providing complete and modern operating systems and utility programs to all users. We do not know what the vendors are doing beyond this to promote standardization and dBusion. Standardization is an important form of diffusion since it facilitates portability and centralized maintenance. In the US, software standards exist primarily through the activities of important vendors; government efforts have had some success (notably with COBOL) but tend to be less effective (White, 1977). With their hierarchical system, one would think that the Soviets are in a particularly strong position to promote standardization and diffusion. For example, the detailed specifications for a programming language can be incorporated in an official State Standard (GOST) that has the force of law. Compilers that conform to this GOST could then be built for widely used computer models by centralized software groups and distributed to the users of these models. It would literally be against the law to change the syntax at an installation. Such a standard exists for the ALGAMS language (GOST, 1976). We do not know to what extent the Soviets are trying to standardize software in this way. We do not even know how this has affected the use of ALGAMS, a language that has been in use since the mid-1960s. Many programs must have been written in a lot of local variants of ALGAMS during this time. Are they being rewritten to run on compilers for the standardized version? Does the State Standard effectively encourage future programming, on the new computers, in this language that was specifically designed against the limitations of Soviet hardware of the mid-l960s? The Ministry of the Radio Industry, which has a legal near-monopoly over the production of mainframe computers, is in a strong position to push this kind of standardization and diffusion, but seems to have little motivation to work very hard at it. To some extent Minpribor acts as a competitive and mitigating influence. The Minpribor Minister, K. N. Rudnev, has been a dynamic force in promoting standards and customer service, and Minpribor has established the only publicly announced national customer software service. Since the Soviets currently seem to be doing better with hardware than software, perhaps one way to gauge software service is to see what is happening with hardware service. In 1977 the Council of Ministers “obliged” all ministries and departments to provide for centralized technical service for computers (Trofimchuk, 1977). Although it is not clear what these obligations are, it is clear that the extent and quality of this service
258
S . E. GOODMAN
leaves much to be desired (Fadeev, 1977; Perlov, 1977; Taranenko, 1977; lzvestiya, 1978). We find situations where a Ministry X has a geographically centralized service facility for its own enterprises using certain computer models. An enterprise in that area with that model, but under a different ministry, cannot use the service. This kind of bureaucratic fragmentation pervades all computing services and is a major obstacle to diffusion. In addition to the software services provided by the hardware vendors, diffusion in the US is greatly facilitated by independent software outlets. We would conjecture that relatively few of the successful independent software ventures in the US were started and principally staffed by people with only an academic background. IBM and other computer companies have been the real training grounds for these entrepreneurs, not the universities or government facilities like the National Bureau of Standards. It is, however, primarily the academics that the Soviets seem to turn to for help with software problems. This does not appear to have done them much good, and it is diacult to see where, in the Soviet institutional structure, they will be able to create an effective substitute for the American computer companies to train and diffuse aggressive and imaginative software specialists. As we noted earlier, the Soviets are in the early stages of developing their own counterparts to these firms, but it is as yet too early to do much more than speculate on the possibilities and their chances for success. User groups are also vehicles for software diffusion. Before Ryad, the Soviets tried several user groups. Lack of interest, the lack of sufficiently large user bases, poor communications, large geographical distances, a lack of hardware vendor support, and assorted bureaucratic aggravations severely hampered these efforts. Furthermore, the existence of many installations were secret, membership in some groups required security clearances, and lists of centers using the same models were probably not readily available. The BESM-6 and M-20/220/222 user groups seem to have been the most successful. These machines were particularly favored by the military and other high-priority users, and the importance of the clientele and their applications had to be a significant factor in these relative successes. These two groups hold regular technical meetings and have built up respectable libraries over the last 1&20 yr. It is likely that both had active support from the hardware developers and manufacturers. Most of the other user groups do not seem to have worked out as well. There is a Ryad-user group, but current indications are that it is not much more effective than the others (Taranenko, 1977). To be really successful, the Ryad users would have to be broken down into specific model
SOFTWARE IN THE SOVIET UNION
259
groups and each of these would have to be supported by the specific enterprises that developed that model’s hardware and systems software. Even then, a group’s effectiveness might be geographically confined. The Soviets have a respectable number of conferences and publications on computing, although efforts in this direction are handicapped by a lack of professional societies that are as active as the ACM, SIAM, and the IEEE. The Soviet Popov Society for electrical engineers does not engage in the same level of activity. In the USSR, the ministries and some particularly active institutes, such as the Institute of Cybernetics in Kiev, sponsor conferences and publications. Each year, they hold a few large national-level conferences and perhaps a couple dozen small, thematic conferences. Occasionally, the Soviet Union hosts an international meeting. Conference proceedings are neither rapidly published nor widely disseminated. Until 1975, with the publication of Progrummirovunie, there was no generally available software journal in the USSR. Articles on software were rare, theoretically oriented, and distributed over an assortment of other professional journals. Few journals are widely circulated or timely. At least two relatively substantive journals, Elektronnaycr Tekhniku Ser. 9 and Voprosi Radioelektroniki Ser. EVT, are restricted. In the West, some of the most timely information appears in periodicals like Datamation that are sustained by vendor advertisements. Soviet vendors do not have the motivation, outlets, or funds for advertising. They seem to have little interest in letting anyone know what they are doing. The Soviets claim to have “socialized knowledge” and it is thus easier to diffuse scientific and technical information in the USSR than it is in the capitalist countries. “Soviet enterprises are all public organizations, and their technological attainments are open and available to all members of society, with the exception of course of information classified for military or political reasons. The public nature of technological knowledge contrasts with the commercial secrecy that is part of the tradition of private property in capitalist countries. Soviet enterprises are obliged not only to make their attainments available to other enterprises that may wish to employ them but also actively to disseminate to other enterprises knowledge gained from their own innovation experience. The State itself subsidizes and promotes the dissemination of technological knowledge through the massive publication services of the All-Union Institute for Scientific and Technical Information [VINITI]” (Berliner, 1976).14This sounds better in theory than it works in practice. While services like those provided by VINITI and efforts to establish national programming libraries (Tolstosheev, 1976) are unquestionably useful, they do not provide the I‘ Not surprisingly, VINITI is at the forefront of Soviet work in large information retrieval systems.
260
S . E. GOODMAN
much broader range of diffusion services available in the US. Capitalistic commercial secrecy is overstated; very little remains secret for very long. The Soviets have no real counterpart for the volume and level of Western marketing activity. By comparison, lists of abstracts of products that have not been properly quality controlled for commercial conditions, that have no real guarantees or back-up service cannot be expected to be as effective a vehicle for diffusion. The Soviet incentive structure not only does not encourage dissemination of innovation particularly well, but it also often promotes the concealment of an enterprise's true capabilities from its superiors. The vertical structuring of the Soviet ministerial system works against software diffusion. Responsibility is primarily to one's ministry and communication is up and down ministerial lines. It is much easier to draw up economic plans for this kind of structure than it is for those with uncontrolled horizontal communication. Furthermore, each ministry appears determined to retain full control of the computing facilities used by its enterprises. In the West, software diffusion is a decidedly horizontal activity. Data processing and computing personnel and management talk to each other directly across company and industry lines, and people are mobile in a wide-open job market. This communication is facilitated by active professional organizations. Such arrangements do not exist to anywhere near the same extent in the USSR. It is not only the ministerial system that mitigates against the really effective encouragement of direct producer-customer horizontal economic activity. Often the various layers of local Communist Party organizations perform the role of facilitating horizontal exchanges. The Party needs visible activities that justify its existence and authority, and this is one of the most important. No serious erosion of this prerogative is possible. However, it is much easier for a local Party secretary to get a carload of lumber shipped than it is for him to expedite the delivery of a special purpose real-time software system. He can take the lumber away from a lower priority enterprise, but what can he do to get the bugs out of the software? He can throw extra people on the job, but that will probably only make matters worse. Software projects tend to react badly to the "Mongolian horde" approach often favored by the Soviets. The detailed enterprise level software transactions cannot be managed by politicians. This problem affects the diffusion of technical R&D to production enterprises in general. Software is an extreme case because it is so difficult to manage under any circumstances. One mechanism that has evolved to facilitate technical work is the emergence of very large enterprises and research institutes that are capable of handling most of their own needs in-house. Thus one finds many enterprises who own and operate comput-
SOFTWARE IN THE SOVIET UNION
261
ing facilities entirely on their This is basically a defensive reaction that improves local viability in a highly constrained environment. Globally, the wide distribution, limited use, and hoarding of scarce resources, particularly personnel, in bloated organizations is counterproductive. The Party and government do recognize this and have shown themselves prepared to give up some control to obtain increased efficiency in innovation. Most of these changes have related to highly technical R&D matters over which they have had little effective control anyway. Changes include the already discussed corporationlike associations and R&D contract work, and also reforms in innovation incentives and prices for new products (Berliner, 1976). This represents progress and will help the development and diffusion of software. 3.3 Stages in the Software Development Process
The Soviet literature is missing the detailed articles on software engineering that are so abundant in the Western literature. This would seem to indicate a lack of widespread appreciation of and serious common concern about the technical, economic, and management problems that plague the stages of development of large software systems. As they gain more experience, this situation is likely to change. Articles on programming methodology are beginning to appear in East European publications (e.g., InforElek, 1977), and the Soviets should soon follow. Such articles will become more common and, in time, there will be papers on case studies, programming productivity experiments, chief-programmer teams, etc. Until such studies are published, we have to content ourselves with a cursory description of some of the problems they are probably having with the various phases of the software development process. There are several nearly equivalent breakdowns of these stages. We will use the following list: producer-client get-together; requirements specification; system design; implementation; testing; maintenance; and documentation. Of course, the software development process is not a single-pass through this list. There are assorted feedback loops, iterations, and overlaps. In particular, documentation is not a distinct stage, but an activity that should pervade every stage. Nevertheless, the list suits our purposes. Prc~dircc~r-clitvit gct-together. This can obviously happen in one of two ways. Either the software producer seeks out the client or vice versa. The Soviets have trouble both ways. Producers in the USSR are not in the Is Computer rental seems to be nonexistent. Rental arrangements would complicate service obligations for the hardware manufacturers. There is a serious effort to establish large, "collective-use," computer centers. and these may eventually prove successful.
S.
E. GOODMAN
habit of seeking out customers. On the other hand, most Soviet enterprises are still naive customers for software. They do not know what they want or need or what is available. We know almost nothing about how Soviet firms negotiate software work, but they must be having even greater difiiculties than we have in the US in negotiating price, time, and manpower needs. In general, the Soviets themselves do not know how they determine prices for new products (Berliner, 1976).16 The annual plans of both the producer and client must limit the flexibility of the arrangements that can be made, and there is a serious shortage of experienced software specialists. Requirements specification. This refers to the translation of customer needs into a statement of the functions to be performed by the software system. The specifications should be at a level of detail that will make it possible to test the product unambiguously to see if they have been met. They serve the producer by making its task clear. This stage clearly demands good communications between the producer and client, something Soviet enterprises are not noted for in general. This stage also requires a great deal of patience and sympathy on the part of the software firm, something that is in short supply at most Soviet research institutes. Experience shows that software specifications change almost continuously as a result of the changing needs, better perception on the part of the customer, or because of problems encountered by the producer. It is important that the client regularly monitor system development progress and that the producer be receptive to client input. If not, then it is almost inevitable that the wrong product will be built. Given their highly centralized economic and political structure, the Soviets are in a position to take requirements specifications quite a bit further than any of the developed noncommunist countries. As we noted earlier, they can specify national (or lower level) standards that would be legally binding. Some serious effort to do this has been undertaken by the State Committee for Science and Technology and other agencies for ASUs (Myasnikov, 1976; Zhimerin, 1978). However, the rigidity of these requirements are being resisted by the enterprises, who want systems that are tailored to their individual desires (Bobko, 1977). As time goes on, and more and more individually tailored systems are built by the enterprises themselves and outside contractors, it will become more difficult and disruptive to impose requirements specifications from above. One can The Polish ELWRO-Service firm uses simple formulas based on unit prices for assembly language instructions. Price appears to be determined primarily by the number and type of instructions in the object code of the software (Mijalski, 1976). The USSR has been slow to appreciate the economic aspects of software development. It came as something of an initial shock to the Soviets when they learned that Western companies expected to be paid more than simple service fees for the software that they had built.
SOFTWARE IN THE SOVIET UNION
263
easily imagine the attractiveness of such uniform standards to the central planners and the opportunities they provide to overcome some of the systemic d8iculties that affect Soviet software development and diffusion. However, it is one thing to have the power to impose standards, but quite another to do it well. The technical problems are enormous. It will be very interesting to see what becomes of these efforts. System design. A good design is usually put together by a few talented people. The Soviet Union does produce such people. Right now, for the reasons discussed earlier and others yet to be noted, they lack experience and number. Their design options are also more restricted than those of their American counterparts since they have far fewer software and hardware tools and building blocks available, Zmplementufion. This generally refers to coding the design and getting the system up to the point where there are no obvious errors or where such errors are unimportant and can be patched. It is the most straightforward of the stages. However, it can be made unpleasant by a lack of hardware availability and reliability. Ryad has eased both of these problems considerably. It can also suffer from a lack of well-trained programmers and of available installation user services. These problems are not deeply systemic and we should see a steady improvement in the Soviet ability to handle this phase of software development. Testing. This is the verification that the coded programs and other components of the system satisfy the requirements specification. This stage generally ends with customer acceptance of a supposedly error-free or error-tolerant system. It involves program testing and consultation with the client as to the satisfaction of his needs. Testing often accounts for almost half of the total preacceptance development effort of large software projects. Soviet strength in mathematics and their interest in programming theory may eventually place them among world leaders in the field of formal proofs of program correctness. However, this is an abstract area that currently has little practical impact. Testing large complicated systems or real-time software is a completely different matter. We have seen little in the Soviet literature that realistically and specifically comes to grips with these problems. They do use a commission to approve computers for production and use, but we do not know if there is a counterpart for software. Software testing is also not the sort of activity that would be expected to show up on any of their measures of institute or enterprise productivity and is thus likely to suffer accordingly. Good system testing is a difficult and complex activity that requires highly skilled people. However, it is a frustrating and low profile thing to do. In light of common Soviet personnel utilization practices, it is likely to be assigned to the lowest ranking neophytes. To a considerable extent, Soviet problems with this stage are basically a
264
S. E. GOODMAN
matter of acquiring experience in building large software systems. It has taken the US a long time to learn to struggle with these difficulties, and the Soviets will have to go through the same painful learning experiences. One place where systemic considerations might be important again relates to customer docility. If the software developers can get away with not taking responsibility for the errors that are passed on to the user, then this is what will happen. The effort devoted to checkout is directly related to customer power. Mainrenancr. This refers to the continued support of a program after its initial delivery to the user. It includes the correction of errors that slipped through the checkout phase, the addition of new capabilities, modification to accommodate new hardware or a new operating system, etc. Good maintenance clearly extends the lifetime and economic value of software. Maintenance costs in the West are now running around 4 6 6 0 % of the total life cycle cost of major software systems (Boehm, 1977). As one extreme example, some Air Force avionics software cost about $75 per instruction to develop, but the maintenance of the software cost almost $4000 per instruction (Trainor, 1973). Maintenance can either be done by the original developer, the customer, or a third party. Extensive third-party arrangements currently seem out of the picture in the USSR, but could become important if software standardization becomes a reality to any appreciable extent. Vendor/producer maintenance requires a high quality of customer service and will be slow to develop there. It appears that the usual procedure has been for the customer to do its own maintenance. This could result in local modifications that would eliminate compatibility and lead to the resistance of centrally supplied updates or improvements. Documentation. Documentation encompasses design documents, comments in the code itself, user manuals, changes and updates, records of tests, etc. To be most effective and accurate, it should be done concurrently with all the other stages. This is not a particlarly interesting activity, and is often slighted unless there exists pressure on the software development group to do it. Good documentation can make checkout and maintenance much easier; poor documentation can cause terrible problems. It is difficult to see where serious pressure for the documentation of ordinary software would come from in the USSR. It is another activity that does not show up well in the measures of productivity. Customer pressure is not likely to be effective. Pressure in the form of State Standards will get software documented; but without strong customer involvement there is really no way to control quality and poor documentation can be a lot worse than none at all. This is likely to remain a long-term problem.
SOFTWARE IN THE SOVIET UNION
265
The almost total lack of convenient Xerox-like services in the USSR is a factor that adversely affects all the stages of the software development process. This is a means to quickly and reliably record and distribute changes in specifications, documentation, test data, etc. This capability is particularly important for large projects involving frequent updates that need to be seen by many people. The absence of fast photocopying facilities can lead to unnecessary delays and costly and dangerous loss of sychronization among the project subgroups. In a similar vein, there is a shortage of good quality user terminals. 3.4 Manpower Development
The training of technically competent software personnel and raising the computer consciousness of management is an important task in the development of a national software capacity. This diffuses and enhances the capability to produce and utilize software effectively, and is the ultimate source of products and services. The USSR trains more mathematicians and engineers than any other country. Both the quantity and quality of mathematical education in the Soviet Union, from the elementary school level (Goldberg and Vogeli, 1976) through postgraduate training, is at least as good as that in the US. For the most part, Soviet managers have engineering rather than business degrees (Granick, 1961). One might think that, with this personnel base, they would be in an unusually good position to rapidly develop a large-scale national software capacity. However, it is one thing to develop a strong national mathematics curriculum. It is quite another to train and utilize, say, a quarter million professional quality programmers and systems analysts (about half the number in the US) and a couple million scientists, engineers, administrators, and businessmen who do applications programming as part of their professional activities. This requires equipment. One does not become a skilled programmer unless one spends a lot of time programming. Schools and industrial training centers are generally low on the priority list for computer allocation. By 1976, Moscow State University, a school comparable in size to UC Berkeley, but with a curriculum much more oriented toward science and engineering, had among the best central computing facilities of any university in the USSR. This consisted of two BESM-6 machines, one of which was to be used in a new time-sharing system with 25 terminals. They were expecting to augment this with two ES-1020s by early 1977. The first ES- 1030 to go to a higher educational institution went to Leningrad State, another large prominent university, in 1975 (Solomenko, 1975). A major engineering school, the Moscow Aviation Institute, was
266
S . E. GOODMAN
still limited to a Minsk-22, a BESM-2, and two Minsk-32 computers in its computing center as of early 1976. These three universities are at the top of the educational hierarchy. The vast majority do much worse. As a result of this situation, there are many students still spending time learning to write small applications and utility programs in machine language for the medium-scale Minsk and Razdan computers and a host of small second- and third-generation computers such as the Mir, Nairi, and Dnepr lines. This may not be as fruitless as it seems, since a lot of these models are still in use in the general economy. The situation is currently changing. The important objective should be to get respectable numbers of the smaller Ryad models into the educational system. Once this is done, students will be trained on the dominant national hardwarehystems software base, and their immediate postgraduation value will be increased considerably. Ryad production capacity is such that this is likely to happen by the early 1980s. The software side of computing as an academic discipline went through an extended infancy that started in 1952 with A. A. Lyapunov’s first course in programming at Moscow State University (an interesting account of the early days can be found in Ershov and Shura-Bura, 1976), and lasted until the end of the 1960s. Not surprisingly, the new Soviet perspective on computing that emerged by the late 1960s included an appreciation of the need to train a much larger number of programmers and systems analysts. To help meet this need, separate faculties in “applied mathematics” were established around 1970 at universities in Moscow, Leningrad, Novosibirsk, and Voronezh (Novozhilov, 1971). In addition to these, and other more recent (e.g., Sabirov, 1978), separate faculties, computer science is also taught under the auspices of mathematics and electrical engineering departments. The Soviet academic community has a strong theoretical tradition. Peer group status considerations, and a shortage of hardware, tend to reinforce this bias. Thus there is considerable pressure to do esoteric computer science to maintain respectability among colleagues (Novozhilov, 1971). Many instructors have had little practical training of their own. So, for example, computer science under a mathematics faculty would be strongly oriented toward numerical analysis, formal logic, and automata theory. There was essentially no opportunity for a student to learn about such things as practical database management systems. Industrial cooperation programs have had only limited success in establishing a better theory/practice balance. Soviet university students getting on-the-job training at research institutes and industrial enterprises are often given menial tasks. The quality of university level education in the USSR varies consid-
SOFTWARE IN THE SOVIET UNION
267
erably across subject lines. Outstanding centers of learning in mathematics exist at many places. Training in mathematics and in some of the mathematically oriented science and engineering fields is as good there as anywhere in the world. On the other hand, the academic study of history and politics is severely circumscribed, rigid, and pervasive (the degree requirements for all technical fields include heavy course loads and examinations on Soviet ideology). Education in the range of subjects that lie between mathematics and the ideologically sensitive areas, including all of the engineering disciplines, seems to be more narrowly focused and rigid than it is in the US [see Granick (1961) for some interesting first-hand observations]. We do not have a good picture of how CS education is evolving in the Soviet Union, but it is likely that it is some kind of hybrid between mathematics and engineering. By US standards, it is probably heavy on mathematics and light on practical programming work. As more hardware becomes available at schools, as instructors gain more practical experience themselves, and as Soviet industry pushes to have its needs met, we can expect to see CS education move closer to US models. Although there are frequent complaints about the shortage of programmers and software specialists, there is little quantitative information on the output from the higher educational institutions or the shortfall that is perceived to exist. In addition to university-level training, there is also substantial activity in the large number of vocational institutes and night school programs. One thing is certain, there is currently an unprecedented effort under way to expand the base of people who can make use of the new computers. Where once 10,000 copies of a programming or software text was a large printing, now books on the ES system are appearing in quantities of 50,000 (Khusainov, 1978), 80,000 (Naumov et al., 1975), and 100,OOO (Agafonov et a/., 1976). Considerable efforts continue to be expended on software for second-generation machines, especially for the Minsk-32 (Zhukov, 1976-43 ,OOO copies). The problem of raising the computer consciousness of management is only part of the more general task of modernizing Soviet management structure, training, and practice. The magnitude of the problem is enormous. “Soviet sociologists have estimated that 60% of all administrative personnel in industry-including directors, deputy directors, chief engineers, heads of service departments, and shop foremen-are in their 50s and 60s. It is estimated that in the next 5-10 yr, when 30- and 40-yr-olds will move into responsible positions, approximately four million people will have to be trained for administration. This will amount to 40% of all such positions in industry. The number of managerial specialists (presumably above the shop level) to be brought into industry is estimated at 1.5 million” (Hardt and Frankel, 1971). In spite of much talk about improving
268
S . E. GOODMAN
managerial training along the lines of American models, little is apparently being done in practice (Holland, 1971a) and certainly nothing is being done on the scale just described. It is difficult to imagine how the American models would be effective in the context of Soviet economic institutional structure. Most consciousness raising will have to evolve on the job. 4. Software Technology TransfeP7
For the most part, the influence of the West on Soviet software development by the mid-1960s was via the open literature. Although this influence was very important (Ershov and Shura-Bura, 1976), the level of technology transfer was weak and there was not much product transfer. The reasons for this include the lack of suitable hardware, an underdeveloped interest in nonnumeric computing, the theoretical orientation of Soviet computer scientists, and the weak position of computer users.l* With the change of perception of computing that led to the Ryad undertaking, there came a commitment to produce and install complex general purpose computer systems in large enough numbers to make it necessary to upgrade general software capabilities. During the last decade, the rather low-key, localized, almost academic, Soviet software community has evolved into a serious industry with a long term and intensive program to acquire software products and know-how from abroad. There are several reasons to think that software technology would be particularly easy for the USSR to obtain from the rest of the world. This is an extraordinarily open technology. Most of the basic ideas and many of the details necessary to produce a functionally equivalent product are available in open sources. It is much more difficult to hide “secrets” in the product itself than is the case with hardware, and the distinction between Parts of this section are adapted from Goodman (1978). A more complete discussion of the nature and control of this problem is in preparation (CTEG. 1979). Is On rare occasions, influential users would take matters into their own hands. An important use of FORTRAN in the USSR stemmed from interest in Western applications programs on the part of physicists at the Joint Institute for Nuclear Research in Dubna and the Institute of High Energy Physics in Serpukhov. They had had considerable exposure t o the CDC applications programs at CERN in Switzerland and other research centers. Their interest and influence led t o the purchase of a CDC 1604, including software, that was installed at Dubna in 1%8 (Holland, 1971~).The CDC FORTRAN compiler was translated, line by line, into the machine language of the Soviet BESM-6 so that the applications programs could be run on this machine [the result has become known as “Dubna FORTRAN” (Saltykov and Makarenko, 1976)j. Here is an instance where active contact with the West produced a real stimulus to go out and get some useful software. However, this was a transfer that was not diffused much beyond BESM-6 users.
SOFTWARE IN THE SOVIET UNION
269
product and technology transfer is often blurred. Relatively little software is proprietary and much that is can still be obtained. Sources of information are abundant: conferences, journals, books, manuals, discussion panels, program listings. software libraries, consulting groups, and vendors. The Soviets have a large trained scientific/engineering manpower base1s that should be capable of absorbing the contents of foreign work and putting together similar products of their own. The successful appropriation of the complex IBM S/360 operating systems is proof that they can do this on a large scale. On the other hand, there are reasons why software technology transfer may not be as easy as it appears. Direct product transfers often run into problems at hardware interfaces. Even small differences in donor and borrower hardware can make conversion difficult. The Ryad hardware is effectively a functional duplication of S/360, but it is not identical to it. It may have taken the Soviets and their CEMA partners almost as long to adapt the DOS/360 and OS/360 operating systems to their Unified System hardware as it took IBM to build these systems in the first placC. Furthermore, it is possible for an unwilling donor to make it painful and time consuming to copy its products, e.g., by only releasing software in object code form or by inserting “time bombs” (code that destroys critical portions of the system after the passage of a certain amount of time or after a preset number of uses). Some of our most advanced software products cannot be transferred because the Soviets lack appropriate hardware. Most importantly, it is extremely difficult to effectively master the techniques and skills of software engineering and management. 4.1 Mechanisms for Software Technology Transfer
This subsection describes the active and passive mechanisms by which software technology is transferred. We adopt the definitions used in the Bucy Report (Bucy, 1976): Active relationships involve frequent and specific communications between donor and receiver. These usually transfer proprietary or restricted information. They are directed toward a specific goal of improving the technical capability of the receiving nation. Typically, this is an iterative process: The receiver requests specific information, applies it, develops new findings, and then requests further information. This process is normally continued for several years, until the receiver demonstrates the desired capability. Passive relationships imply the transfer of information or products that the donor has already made widely available to the public.
The term “passive” is used primarily in reference to donor activity. The receiver may be very active in its use of passive mechanisms. 19
They claim 25% of the world’s total of “scientific workers” (Ovchinnikov, 1977).
270
S . E. GOODMAN
An illustration of how the terms “active” and “passive” will be used in the context of software transfers might be helpful. There are two kinds of proprietary software: that which is generally available to the public and that which is not. The purchase of a publicly available system, perhaps with some basic training and maintenance service, is passive, even though the buyer might become very active in distributing or duplicating the software. The sale of software that is not publicly available would be considered a more active relationship. The donor is clearly contributing more than what is normally and widely available. If sale is accompanied by advanced training, then the donor relationship is that much more active. “How to build it yourself” lessons from the donor will be considered very active even if such services are publicly available. Listed below are a sample of mechanisms that can be used to transfer software products and know-how. They are roughly ranked by the level of donor activity. (One can easily imagine specific examples that might suggest some reordering, but this list is adequate for our purposes.) Joint ventures Sophisticated training (e.g.. professional-level apprenticeships) Licenses with extensive teaching effort Consulting Education of programmers and systems analysts Sale of computing equipment with software training Detailed technical documents and program listings Membership in Western user groups Documented proposals Conferences Academic quality literature Licenses and sale of products without know-how Commercial and exchange visits Undocumented proposals Commercial literature and exhibits
More active
Donor activity
More passive
-
The term “license” needs to be defined here since normal patent considerations do not apply to software (Mooers, 1977). We will take it to mean the provision of a copy of the software to a receiver who then has the recognized right to distribute it extensively within some domain. The distinction between this and a simple product sale may be a matter of a paragraph in a contract, but the distinction is worth making. It is easy to produce multiple copies of software products and the Soviets have control of a large, and economically isolated, domain of computer installations. Of course, some categories of software are more transferable than others. The following four rough (partially overlapping) categories are listed in order of decreasing ease of transferability:
SOFTWARE IN THE SOVIET UNION
271
( 1) Applications programs written in higher-level languages. (2) Systems and utility programs in machine or higher-level language form. (3) Large, highly integrated systems (e.g., multiprogramming operating systems, real-time air traffic control systems). (4) Microprograms and other forms of “software” that are very closely interfaced with and dependent on the hardware on which they are run and which they control.
Although it is difficult to quantitatively merge our two lists because the effectiveness of software transfer is so strongly dependent on such highly variable factors as local programmer talent, there is a clear qualitative merge. As one goes down the list of transfer mechanisms, their effectiveness decreases for all software categories. For any given mechanism, its effectiveness decreases as one goes down the list of software categories. If any of the listed mechanisms should be candidates for US Governmeht control, they should be the top four listed. An example will illustrate the third mechanism. In their efforts to adapt DOS/360 and OS/360 to the Ryad-1 models, it would have been of considerable help to the & M A countries if they had had a deal with IBM, or with a company that had considerable experience in the business of making non-IBM hardware compatible with IBM software, which would have included a license for the software and a teaching effort that would have showed them how to adapt it to the Ryad hardware.*O This effort might have gone further and included help in designing the hardware with the compatibility goal in mind. Such an arrangement could conceivably have substantially reduced the time it took the Soviet Bloc to acquire and adapt the systems on their own, and it could have provided a tremendously valuable transfer of know-how. Simple product transfer should be of much less concern than know-how transfers that will enable the Soviets to build up their indigenous software capabilities. The top four mechanisms transfer considerable know-how and short circuit the painful experience of learning through timeconsuming and costly trial and error. The delay of the acquisition of indigenous capability is a major goal of antitransfer measures. The lesser forms of licensing and product sale on our list are not as important. For example, IBM might have sold the Soviets a “subscription” to the S/360 operating systems. This could have taken the form of supplying one copy of each of the operating systems on tape plus informa20
No such arrangement actually existed
272
S.E. GOODMAN
tion on new releases, etc., and a license for distribution to all Ryad users. They would have had to adapt the software to the Ryad hardware themselves. This would have saved them the effort of obtaining it through other legal channels or by covert means, and IBM would have been able to cultivate good will and get some compensation for the use of its products. There was no effective way to deny the CEMA countries access to copies of this software; it was simply available from too many sources. The time that the Soviets could have saved through such an arrangement would not have been great. The time it took to adapt the software to Ryad must have been much greater than the time it took to acquire copies of it. But the importance of the passive mechanisms to software technology transfer to the USSR should not be underestimated. We think they contributed significantly to the massive appropriation of IBM S/360 software for the Unified System. They also d e c t training programs at all levels. Much written and oral material is available on subjects that relate to the management of software projects and on software engineering. These are areas where the Soviets are particularly weak. Passive material is publicly available in huge quantities. The Soviets have been using these sources for almost three decades and their influence is obvious in almost all Soviet software work. Before Ryad, hardware problems limited the use of direct product transfer. Now, of course, direct product transfer is an important source of useful software. However, it is important to point out that passive sources are of limited value for several of the most important phases of the software development process. These include the customer/developer relationship, certain aspects of specification and design, the higher levels of testing and integration, and maintenance. All of these stages become particularly important for the construction and support of large, highly integrated systems. Active soumes are also abundantly available in the West. In contrast to a hardware area, such as disk manufacturing technology where there are only a few really valuable potential donors, there are literally thousands of places in the US alone that have something to offer the Soviets in software products and know-how. The Soviets do not use these active mechanisms to the extent that they could (but there has been substantial improvement since the mid-1960s). USSR restrictions on foreign travel by its citizens is a severe constraint. The people they send out are helpful to their effort, but they are too few. They would have to send several hundred software specialists to the West each year, and most of these for extended study, to affect continuously and broadly their software capabilities. The leadership is very unlikely to do this. It might be politically and economically more acceptable for them to import Western experts who would spend extended periods showing
SOFTWARE IN THE SOVIET UNION
273
them how to manage large software projects and how to upgrade computer science education. They might also buy full or part ownership in Western software firms, and use the Western talent employed there to develop software for their use. The ELORG centers in Finland and Belgium represent moves in this direction. A more unlikely form of long-term joint venture would be to permit partial Western ownership and management of a Soviet enterprise. Some of the other CEMA countries allow this, but so far the USSR has not. On the other hand, the internal political situation in the USSR may change to militate against both the import and export of computer scientists after the death or retirement of Brezhnev (Yanov, 1977). 4.2 External Sources
The W360-Ryad software transfer was facilitated with considerable help from Eastern Europe, particularly the GDR. It is hard to avoid the impression that the “per capita” software capabilities of the GDR, Hungary, Poland, and Czechoslovakia exceed that of the USSR. This is probably the result of many factors, not the least important of which is the greater contact these countries have with the West European computing community. They have also had much more direct and indirect experience with IBM products. We would not go so far as to conjecture that the indigenous capacity of the USSR may have been such that the S/360-Ryad software transfer would have failed without help from Eastern Europe, but the role of these countries should not be underestimated. Hungary, the GDR, Poland, and Czechoslovakia are not only important conduits for facilitating software technology transfer from the West to the USSR, but they are also valuable sources of products and know-how in their own right. They have potentials for providing active mechanisms for personnel training, consulting, etc. As communist countries using a common hardware base, they are the best external source the Soviets have for many industrial- and management-related software products. They are also external sources that can be used directly in the development of military software systems, such as those used for command, control, and communications, for the Warsaw Pact. Problems that inhibit active involvement with the West, such as travel restrictions and a lack of hard currency, are much less important. Perhaps the greatest value of the Eastern Europeans to the USSR is as models for institutional arrangements and economic practices. In particular, Hungary and the GDR seem to be much more effective in the areas of software customer service and systems software support than the Soviets. Marxist theory may be opposed to an uncontrolled gaggle of profit-
274
S.E. GOODMAN
hungry, privately owned firms operating outside of a central plan, but it is hardly opposed to the development and maintenance of products that benefit the economy. The Hungarians and East Germans are showing that it is possible for communist economies to provide minimum basic software services to general users. The Soviet Union might learn much from them. Western Europe is both a conduit for US software technology and a source of innovation in its own right. Not surprisingly CEMA has easier access to US multinational corporations through their European companies than through US-based enterprises. The shared culture and language across East and West Germany makes for a particularly low barrier. Notable West European developments of direct value to the USSR include: the Europe-based ALGOL project, CERN in Geneva, SIMULA-67 (Norway), the Aeroflot airlines reservation system (France), and the International Institute of Applied Systems Analysis located in Austria.21 The most important sources are West Germany, England, and France. Others are Belgium, Denmark, Holland, Norway, and the politically neutral Austria, Finland, Sweden, and Switzerland. Joint ventures with firms in these countries may become an important transfer mechanism. The US remains the ultimate source of software technology. In addition to the IBM-Ryad connection, Soviet interest stems from the facts that more R&D is done here than anywhere else and that we are the largest repository of software products and information. The US is clearly the world leader in the development of large military-related software systems. English is an effective second language for almost all Soviet computer scientists. Finally, there is the nontrivial matter of prestige and the “Big Two” psychology. From the standpoint of career enhancement, it is more desirable for a Soviet citizen to come here than to travel anywhere else. Russian pride also seems to suffer less when they borrow from us than when they have to go to the Hungarians or Germans for help. The Soviets make less extensive use of the Japanese as a source of software technology transfer. This is partially because Japan has not developed as much software, although their potential is high. However, Japanese software institutional arrangements and development/ maintenance practices may be even less suitable for Soviet emulation than those of the US. In general, it would appear that cultural and language barriers make Japan a less attractive source than the West. A distinction should be made between commercial software, which is produced for sale, and noncommercial software, which is used only by its developers or distributed free or at a nominal cost. The latter is usually I’ It should be noted that all five of these important examples involve substantial US participation.
SOFTWARE IN THE SOVIET UNION
275
produced by nonprofit organizations (e.g., universities, government labs) and may be of high quality, but most of it is not tested, maintained, or protected to the same extent as commercial software. Commercial software has become a multibillion dollar business in the West. Over the last 10-15 yr, the companies in this industry have become increasingly aware of protecting the proprietary value of their products. The protective mechanisms include a variety of legal and technical options that appear to be reasonably effective, although in such a dynamic industry it is usually only a matter of time before a competitor comes up with an equivalent or better product. We do not know how well people who have been trained in the West, or in jointly operated facilities in Eastern Europe, are actually used. It is not clear if they are used in any particularly effective way to promote the internal diffusion of know-how. It is important to recognize that technology transfer will not solve the most basic Soviet software problem. The Soviets may be able to import enough turnkey plants for manufacturing automobiles to satisfy their perceived need for cars, but they are going to have to develop the internal capacity to produce most of their own software. There are thousands of computer centers in the USSR and they all need large quantities of software. Contacts with foreign sources are limited to only a very small fraction of the Soviet computing community. The orifice is too small to import the volume of software technology required, and internal systemic problems prevent its effective diffusion and use. Finally, these computer installations have their own special software needs that reflect their way of doing business and Western commercial applications software products may be unsuitable for these needs. 4.3 The Control of Software Technology Transfer
In terms of in-depth understanding and the avoidance of repetition of mistakes, the Soviets do not seem to have profited much, so far, from the Western experience. They consistently make the same mistakes and suffer from the same growing pains as we did. These are often exacerbated by difficulties of their own making. The Soviets have been making extensive use of Western software technology, but they currently seem satisfied with the short-term goals of recreating selected Western systems at a rate that may actually be slower than that with which the West built these systems originally. It is inevitable that the Soviets will significantly improve their software capabilities as they acquire more experience and as their perception of the role of software matures. Their interest in software technology transfer as
276
S . E. GOODMAN
a means of acquiring both products and know-how is likely to continue indefinitely. Furthermore, as their own indigenous capabilities improve, they can be expected to make more extensive and more effective use of transfer mechanisms and opportunities.** We could make life more difficult for them through various forms of control. Unfortunately, software control is more complex than the control of the kinds of technology that were used as examples in the Bucy Report (1976). The range of software products and know-how is enormous. Some of it, such as microprograms and sealed-in software (Mooers, 1977), can be controlled in much the same way as hardware. Some of it, such as numerical and combinatorial algorithms, is essentially mathematics and beyond any effective control (although the translation from algorithm to program is often nontrivial). Most software lies somewhere between hardware and mathematics, and we do not know how to protect this part of the spectrum. There are several different ways to try to control software. We could try to focus on those categories that are most amenable to control. For example, we might attempt to control the large, highly integrated systems, and give up on the applications programs in high-level languages and the small systems routines. Another approach would be to try to control the mechanisms of transfer. Thus we might regulate licenses with extensive teaching effort, joint ventures, etc., and ignore the mechanisms at the lower end of the list. A third approach would be to base controls on the potential military uses of the software. We could try to regulate software for pattern recognition, communications networks, test and diagnostic systems, command and control. Finally, we might use some form of “time-release’’ control over many products. All four approaches have serious definitional and enforcement problems. For example, where does technology transfer for management information systems end and transfer for command and control uses begin? Not the least of the problems faced by efforts to regulate software transfer is its huge number of sources. There is nothing that can be done to seal up all the ways to obtain noncommercial products and know-how from universities, laboratories, and the open literature. One of the largest single sources of readily obtainable software is the US Government, including the Department of Defense. Assorted US Government 22 We should not forget that transfers can go both ways. The Soviets will someday develop software products and ideas that American firms or the US Government would want to use. Systemically, we are capable of more effectively exploiting and diffusing software advances than are the Soviets. There is potential for a two-way flow of software technology transfer. Although the flow into the US would be much smaller than the outflow, we would probably make better use of what we get.
SOFTWARE IN THE SOVIET UNION
277
agencies literally give it away to the Warsaw Pact countries (CSTAC TT, 1978). It is more realistic to try to control commercial software. Commercial software houses distribute products that are usually better tested, maintained, and documented than noncommercial products. Regulation may delay acquisition or discourage the Soviets from obtaining as much software as they might if there were no regulations. The best specific forms of control might be the protective mechanisms the commercial software producers use against their market competitors. With their growing appreciation of the cost and value of software has come the desire and effort to protect it more effectively. The trend with the IBM operating systems is a case in point. With S/360, almost all the software was available to anyone who wanted to take it. With S/370 and the 303X models there is a continuing tendency to collapse the “free” software around the nucleus of the operating system, and give the user an option to purchase the rest. Unfortunately, some marginal US companies might be willing to let the Soviets have more than they would their market competitors. Thus government regulation would be necessary to supplement company practices. One of the best forms of control of software transfer is the control of hardware. Sophisticated software systems often require sophisticated hardware. Soviet general purpose hardware has reached a 360-level plateau and it will not be easy for them to develop advanced telecommunications and real-time processing hardware for widespread use. Software is basically an evolutionary technology. The closest it comes to revolutionary developments results from opportunities presented by major advances in hardware availability. Control over hardware technology transfer may be an effective way to delay acquisition of advanced capabilities. A basic problem in the formulation of controls is that we really do not understand what benefits past transfers have given the Soviets or how well they utilize transfer mechanisms. Did the CEMA countries learn more by adapting the S/360 operating systems to Ryad than they would have if they had built new operating systems? Would the latter have taken the same time as the former? Did they use fewer people than it would have taken them to do something more innovative? They devoted many manyears of many of their best people to the piecemeal debugging of the huge S/360 operating systems on the Ryad hardware. This time might have had a higher payoff, from the standpoint of enhancing their indigenous software capabilities, if these people had invested the effort in acquiring experience in large system design, integrated test design, and planning for maintenance.
278
S . E. GOODMAN
Perhaps the best statement on software technology transfer was made by Edward Teller: The Russians know all of our secrets; they know what secrets we will develop two years in advance. We are still ahead in electronic computers because there are no secrets. Without secrets we are advancing so rapidly that the Russians can’t keep up.
Although this statement was made in reference to computer hardware, and in that context it may be a bit exaggerated, there is no better short appraisal of the software situation. Ultimately the diversity, openness, and high rate of incremental innovation of the American software industry is the best protection it has.
5. ASummary
By and large, the development of Soviet computing has tended to follow closely the US technical pattern, but it has differed considerably in terms of timescale, philosophy, institutional arrangements, capital decisions, and applications. In particular, the USSR was slow to appreciate data processing, and to develop the technology to support the widespread use of digital computers for such applications. It is only within the last ten years that the Soviets have given the priority and resources necessary to the production and installation of complex general purpose computer systems in large enough numbers to make it necessary to improve greatly their software capabilities. Prior to this, computer use in the USSR was limited primarily to smalland medium-scale scientific and engineering computations. There was no well-developed business machines industry, nor was there an important clientele with a perceived need for such equipment. The Soviet military and technical communities were less enamoured with computers than their US counterparts, and the Soviet computer industry developed only to the extent that it could meet the relatively limited needs of these users. As a result, Soviet computing went through an extended infancy, with its first-generation hardwarehoftware period lasting to the mid- 1960s, and the second generation continuing into the early 1970s. Very few machines large enough to necessitate a real operating system were built. Storage and peripheral limitations restricted the use of high-level languages. The Soviets did not build the software that allowed computers to be used by many people who had not had much technical training. The shift to the production of large numbers of general purpose computers was forced by internal economic pressures and, most likely, by the greater needs of the military. A substantial commitment necessitated the
SOFTWARE IN THE SOVIET UNION
279
development of much improved hardware capabilities-most important, the creation of an upward compatible family of computers with a respectable assortment of peripherals. The Ryad-1 family, an effective functional duplication of the IBM S/360, provides the Soviets and their CEMA partners with a reasonably modem mainframe capability. The computers of this family have been produced in considerable quantities and give Soviet users an unprecedented assortment of peripherals and level of reliability. Soviet satisfaction with this hardware can be inferred from their continued development of evolutionary upgrades of the early Ryad models, and their further commitment to the development of the Ryad-2 series, based on the IBM S/370. There has been a parallel, although somewhat smaller, major effort devoted to the development of minicomputers: first to the ASVT models, and more recently to the CEMA SM family. This new, and substantial, base of mainframe, minicomputer, and peripheral hardware has done much to give the Soviets a broad general purpose national computing capability. Although backward by the current US state-of-the-art, it seems clear that it was never the intention of the Soviets to try to push the frontiers of either hardware or software technology. The overall plan was to put a large number of respectable, compatible computers into productive use as expeditiously as possible. To this end, it was not surprising that the Soviets decided to use an already proven technology in the form of the IBM S/360. Although they seriously underestimated many of the difficulties of trying to duplicate a sophisticated foreign technology, they felt that the appropriation of the S/360 systems and applications software was the safest and quickest way to achieve their primary goal. The Soviets have been making extensive use of Western software products, particularly in the area of systems software. They currently seem satisfied with the goal of recreating selected Western software systems at a rate that may actually be slower than that with which the West built them in the first place. In terms of in-depth understanding and the avoidance of repetition of mistakes in their own work, the Soviets do not seem to have profited much from the Westem experience. They consistently make the same mistakes and suffer from the same growing pains as we did. These are often exacerbated by difficulties of their own making. The Soviet economic system, with its vertical hierarchical structure and lack of opportunity for developing flexible horizontal relationships, seems ill-structured to support many of the software development practices that have worked well in the US. A strong hierarchical bureaucratic environment and a conservative incentive system effectively discourages entrepreneurial innovation. Enterprises are severely constrained with respect to
280
S . E. GOODMAN
findingboth suppliers and customers. By US standards, there is very little consumer pressure exerted on vendors, except in the case of special (e.g., military or Party) customers. The net result is that most Soviet computer installations have to rely on their own internal assets for most of their software needs. It is not even clear if they get much outside help with the systems software supplied by the hardware vendors. There is a long standing users’ attitude that accepts this situation and is thus a major obstacle to progress. These difficulties exist in many other sectors of the Soviet economy, but they appear to be especially serious in the sophisticated service-oriented software industry. In spite of these problems, Soviet software has come a long way during the last decade. The appropriation of IBM software for the Unified System was a substantial technological achievement. The volume, level, and intensity of software development and use has risen greatly over this period. The indigenous software capacity of the USSR has become respectable by world standards. Furthermore, as their own capabilities improve, they can be expected to make more extensive and more effective use of technology transfer mechanisms and opportunities. The Soviet software industry will need some systemic changes to function more effectively. It is not clear to what extent such reforms will be allowed to take place. As the Soviets gain more experience, and as their perception of the value and problems of software matures, we can expect to see considerable improvement take place within the present economic structure. Past reforms, such as the establishment of the corporationlike associations and the expansion of contracting arrangements, seem likely to benefit software development. But improvements within the existing economic environment would still appear to leave the Soviet software developmenthser community well short of the systemic advantages enjoyed by its US counterpart. Since software is such a widely dispersed and pervasive technology, it would seem impossible to permit major reforms here without also permitting them elsewhere in the economy. It is doubtful if the needs of computing alone could build up enough pressure to bring about broad reforms in the economic system. The USSR has lots of potential software talent and lots of need. The two have to be brought together in some effective way. Various forms of technology transfer from the West might serve as catalysts to help bring this about. However, the changes that will come will take time and have to fit in with the way things are done in the Soviet Union. Simple foreign transplants will not work. No reforms in a country that is as self-conscious as the USSR can be successful if they are divorced from Russian and Soviet traditions. But the history of Soviet computing shows a strong dependence on Western, and particularly US, technology and social/
SOFTWARE IN THE SOVIET UNION
281
economic practices. Effective solutions to Soviet software problems will have to have a hybrid character.
ACKNOWLEDGMEN.rS A N D DISCLAIMER Various forms of support are gratefully acknowledged. These include a NSF Science Faculty Fellowship, a Sesquicentennial Associateship from the University of Virginia, and a research fellowship from the Center for International Studies at Princeton University. Other support has come from the US Army Foreign Science and Technology Center, Department of Defense, and FIO/ERADCOM, Ft. Monmouth, New Jersey. Continued collaboration with N. C. Davis of the CIA has been particularly valuable. A couple dozen scattered paragraphs have been excerpted from Davis and Goodman ( 1978) and Goodman (1979). Permission has been granted by the ACM and the Princeton University Press. Some duplication was necessary to keep this article reasonably selfcontained. Permission to use the quotations from Berliner (1976) in Section 3.2 and from Hardt and Frankel (1971) in Section 3.4 was granted by the MIT and Princeton University Presses. The views expressed in this paper are those of the author. They do not necessarily reflect official opinion or policy of the United States Government.
REFERENCES* Agafonov, V. N. et a / . (1976). "Generator of Data Input Programs for ES Computers." Statistika, Moscow. Amann, R., Cooper, J. M., and Davies, R. W., eds. (1977). "The Technological Level of Soviet Industry." Yale Univ. Press, New Haven, Connecticut. Andon, F. 1. ef d.(1977). Basic features of data base management system OKA. Upr. S i s f . Mash. (2). Ashastin, R. (1977). On the efficiency with which computer equipment is used in the economy. Plan. Khoz. May ( 3 ,48-53. Aviafion W m k (1972). July 31, 14. Babenko, L. P., Romanovskaya, L. M., Stolyarov, G. K., and Yushchenko, E. L. (1%8). A compatible minimal COBOL for domestic serial computers. Presented at A U Conf. Prog., 1st. l%8. Bakharev, 1. A. ef a / . (1970). Organization of teletype operations and debugging in the IAM operating system. Presented at A U Conf. Prog., 2nd. 1970. Barsamian, H. (1968). Soviet cybernetics technology: XI. Homogeneous, general-purpose, high-productivity computer systems-a review. Rand Corporation, RM-5551-PR. Bauer, F. L.. ed. (1975). "Advanced Course on Software Engineering" (Munich, 1972). Springer-Verlag, Berlin and New York. Belyakov, V. (1970). How much does a computer need? Izvrstiya March I , 3. Berenyi, 1. (1970). Computers in Eastern Europe. Sci. Am. Ocf., 102-108. Berliner, J . S. (1976). "The Innovation Decision in Soviet Industry." MIT Press, Cambridge, Massachusetts.
* Foreign publication titles translated.
S . E. GOODMAN Bespdtov, V. B., and Strizhkov. G . M. (1978). The equipment complex of the Unified System for teleprocessing of data. Prih. Sist. Upr. (6), 9-12. Betelin, V. B.. Bazaeva, S. E., and Levitin, V. V. (1975). ”The ES-ASVT Small Operating System.” Order of Lenin Institute of Applied Mathematics, Academy of Sciences USSR, Moscow. Bezhanova, M. M. (1970). The Tenzor system program. Presented at AU C O I I ~Pro,q. . . 2ud. IY70.
Bobko. I. (1977). Testing. Sov. ROSS~VU July 12. 2. Boehm, B. W. (1975). The high cost of software. I n (Horowitz, 1975). 3-14. Boehm, B. W. (1977). Software engineering: R&D trends and defense needs. I n (Wegner, 1977), 1.1-1.43. Bornstein, M., and Fusfeld, D. R., eds. (1974). “The Soviet Economy: A Book of Readings” (4th ed.). Irwin, Homewood, Illinois. Borodich, L. 1. er d . (1977). “ALGAMS-DOS ES Computers.” Statistika, Moscow. Bratukhin, P. I., Kvasnitskiy, V. N., Lisitsyn, V. G., Maksimenko, V. I.. Mikheyev, Yu. A., Cherkasov, Yu. N . , and Shohers, A. L. (1976). “Fundamentals of Construction of LargeScale Information-Computer Networks” (D. G . Zhimerin and V. I. Maksimenko, eds.). Statistika, Moscow. Brich, Z. S., Voyush, V. I., Deztyareva, G . S., and Kovalevich. E. V. (1975). “Programming ES Computers in Assembly Language.” Statistika, Moscow. Bucy, J . F. (1976). An analysis of export control of U.S. technology-a DoD perspective. Defense Science Board Task Force Report (Feb. 4) on Export of U.S. Technology, ODDR&E. Washington, D.C. Burtsev, V. S. (1975). Prospect for creating high-productivity computers. Sov. Sci. 45. Burtsev. V. S. (1978). Computers: relay-race of generations. Pmi*c/ci April 4, 3. Buxton, J. M., Naur. P., and Randell, B. (1976). Software Engineering: Concepts and Techniques Proc. NATO Conferences, Garmish, West Germany, Oct. 7-11, 1%8; Rome, Oct. 27-31, 1%9. Petrocelli/Charter, New York. Campbell, H. (1976). Organization of research, development and production in the Soviet computer industry. RAND Corporation, R-1617-PR, Santa Monica, California. Cave, M. (1977). Computer technology. In (Amann ct a / . , 1977). 377-406. Chevignard. D. ( 1979. Soviet automation and computerization effort. DeJ N f i t . ( f o r i s ) Feb., 117-128. CSTAC TT (1978). Transfer of computer software technology. Jan. 20 Report of the Technology Transfer Subcommittee of The Computer Systems Technical Advisory Committee (CSTAC), U.S. Dept. of Commerce. CSTAC 11 (1978). COMECON Ryad-11 Report (Rev. I , Feb. 22). Foreign Availability Subcommittee (CSTAC), U.S. Dept. of Commerce. CTEG (1979). Computer Networks: An Assessment of the Critical Technologies and Recommendations for Controls on the Exports of Such Technologies. Computer Network Critical Technology Expert Group (CTEG), U.S. Dept. of Defense May.). Davidzon, M. (1971). Computers wait for specialists. Sot. I t i d . Dec. 2.5, 2. Davis, N. C., and Goodman, S. E. (1978). The Soviet Bloc’s Unified System of computers. ACM Comp. Sum. 10 (2), 93-122. Del Rio, B. (1971). Cybernetics: To a common denominator. Pravda Jan. 5. Dittert, W. (1978). ES-I055 computer. Szamirasrechnika (Hung.)Jan. Doncov. B. (1971). Soviet cybernetics technology: XII. Time-sharing in the Soviet Union. Rand Corporation, R-522-PR, Santa Monica, California. Drexhage, K. A. (1976). A survey of Soviet programming. SRI Tech. Rep. Proj. 3226.
SOFTWARE IN THE SOVIET UNION
283
Drozdov, E. A., Komarnitskiy, V. A., and Pyatibratov, A. P. (1976). “Electronic Computers of the Unified System.” Mashinostroyenie, Moscow. Dyachenko, A. I. (1970). Ukrainian Republic fund of algorithms and programs. Mekh. Avtom. Kontrola ( I ) , 61. Efimov, S. (1970). Horizontals and verticals of control. Izvestiya, March 8, 3. Ekonomicheskava Gazeta (1976). Sept. 1. Ekonomicheskaya Gazeta (1977). April 15. Electrical Engineering Times (1977). Nov. 28. ElorgKomputronics ( 1978). Growth of Soviet computers and Indo-Soviet cooperation: new high rate performance third generation computer ES-1033 from the USSR. May-June advertisement by VIO Elektronorgtekhnika, a Soviet foreign trade organization, and by Computronics, India, its marketing agent in India. Ershov, A. P. (1966). ALPHA-An automatic programming system of high efficiency. J . ACM 13, 17-24. Ershov, A. P. (1%9). Programming 1968. Avtomaf. Program. (Kiev) 3-19. Ershov, A. P. (1970). Problems of programming. Vestn. Akad. Nauk S S S R (6), 113-1 15. Ershov, A. P. (1975). A history of computing in the USSR. Datamation Sept., 80-88. Ershov, A. P., and Shura-Bura, M. R.(1976). Directions of development of programming in the USSR. Kibernetika 12 (6). 141-160. Ershov, A. P., and Yushchenko, E. L. (1969). The first All-Union conference on programming. Kibernetika 5 (3). 101-102. Evreinov, E. V., and Kosarev, Yu. G., eds. (1970). “Computer Systems.” Akademiya Nauk, Novosibirsk; translated and published for the National Science Foundation by Amerind Pub]., New Delhi, 1975. Fadeev, V. (1977). Who is to answer for computer servicing? Sots. Ind. Sept. 4, 2 . Filinov, E. N., and Semik, V. P. (1977). Software for the SM-3 UVK. Prib. Sist. Up. (lo), 15-17.
First AU Conf. Prog. (I%@. “First All-Union Conference on Programming” ( 1 1 vols.), Kiev. Excerpts translated in Sov. Cybern. Rev., July 1969, pp. 20-65. Galeev, V. (1973). The collection is large but the benefit is small. Pravda Jan. 8. GDR (German Democratic Republic) (1976). Ryad Overview. In “Rechentechnik Datenverarbeitung”.Memorex, McLean, Virginia (distr.). Gladkov, N. (1970). A help or a burden? Pravda Oct. 16 ( 2 ) . Glushkov, V. M. (1971a). The computer advises, the specialist solves. Izvestiya Dec. 15, 3. Glushkov, V. M. et al. (1971b). ANALITIK (Algorithmic language for the description of computational processes with the application of analytical transformations). Kibernetika 7 ( 9 , 102-134. Glushkov, V. M., Ignatyev, M. B., Myasnikov, V. M., and Torgashev, V. A. (1974). Recursive machines and computing technology. Proc. AFIPS Conf., pp. 65-70. North Holland, Amsterdam. Godliba, 0..and Skovorodin, V. (1967). Unreliable by tradition. Pravda Aug. 27, 3. Goldberg, J. G., and Vogeli, B. R. (1976). A decade of reform in Soviet school mathematics. CBMS Newsletter 0ct.-Nov. Goodman, S. E. (1978). The transfer of software technology to the Soviet Union. Presented at “Integrating National Security and Trade Policy: The United States and the Soviet Union,” a conference held June 15-17 at the U.S. Military Academy, West Point, New York. Goodman, S. E. (1979). Soviet Computing and Technology Transfer: An Overview. World Politics 31 (4).
S . E. GOODMAN Corlin, A. C. (1976). Industrial reorganization: the associations. I n (Hardt, 1976), 162-188. GOST 21551-76 (1976). “USSR State Standard for the Programming Language ALGAMS.” Standartov, Moscow. Granick, D. (1961). “The Red Executive.” Anchor Books, Garden City, New York. Hardt, J. P., and Frankel, T. (1971). The industrial managers. I n (Skilling and Griffiths, 19711, 171-208. Hardt, J. P., ed. (1976). “The Soviet Economy in a New Perspective.” Joint Economic Committee U.S.Congress, Washington, D.C. Holland, W. B. (1971a). Kosygin greets first class at management institute. S o v . Cyhem. Rev. May, 7-1 1. Holland. W. B. (1971b). Party congress emphasizes computer technology. Sov. Cybem. Rev. July, 7-14. Holland, W. B. (1971~).CDC machine at Dubna Institute. Sov. Cyhern. Rev. July, 19-20. Holland, W. B. (1971d).Commentson anarticle by M. Rakovsky.Sov. Cvhrm. Rev. Nov.. 33. Horowitz, E., ed. (1975). “Practical Strategies for Developing Large Software Systems.” Addison-Wesley, Reading, Massachusetts. IBM RTM (1970). ”Introduction to the Real-Time Monitor (RTM).” GH20-0824-0. IBM Systems Reference Library. IBM DOS (1971). “Concepts and Fac es for DOS AND TOS.” DOS Release 25, GC 24-5030-10, IBM Systems Reference Library. 1BM S/360 (1974). IBM S y s t e d 3 6 0 Models 22-195. I n .“Datapro Reports” (7OC-491-03). Datapro Research, Delran, New Jersey. IBM S/370 (1976). IBM System/370. I n “Datapro Reports” (7OC-491-04) Datapro Research, Delran, New Jersey. Informircio Elektronihcr ( H u n g . ) (1977). Three articles on structured programming and program correctness verification. 12 (4). Infotech Information Ltd. ( 1972). “Software Engineering.” International Computer State of the Art Report. Maidenhead, Berkshire, England. lnfotech Information Ltd. (1976). “Real-Time Software.” International Computer State of the Art Report. Maidenhead, Berkshire. England. ISOTIMPEX (1973). English language description of the ES-1020. Bulgarian State Trade Enterprise ISOTIMPEX, Sofia. (Untitled, undated, assume issued 1973.) Ivanenko, L. N. (1977). Imitation and game simulation of human behavior in technological and socioeconomic processes. Report on a conference held in Zvenigorod, May 27-June I , 1977. Kihernefiko 13 (3, 150. Izmaylov, A. V. ( 1976). Software system for the ‘Tver-ES’ automated control system. Ref. Zh. Kibem. (8), Abstract No. 86603. Izve.stivu (1978). March 14. 2. Judy, R. W.(1%7). Appendix: Characteristics of some contemporary Soviet computers. I n “Mathematics and Computers in Soviet Economic Planning’’ (J. Hardt et a/., eds.), pp. 261-265. Yale Univ. Press, New Haven. Kaiser, R. G . (1976). “Russia: The People and The Power.” Atheneum, New York. Kasynkov, I. (1977). Izvesfiytr March 4, 2. Kazansky, G . (1%7). Moscow Nedelyn Dec. 4 (7). Kharlonovich, 1. V. (1971). Automated system for controlling railroad transport. Avfom. Telemehh. Svynz (8). 1-3. Khatsenkov, G . (1977). Instantaneously subject to computers. Sol.\. I d . April 24. 1 . Khusainov, B. S. (1978). ”Macrostatements in the Assembler Language of the ES EVM.” Statistika, Moscow. Kitov. A. I., Mazeev, M. Ya., and Shiller, F. F. (1968). The ALGOL-COBOL algorithmic language. I n AU Conf. f r o g . , I s f , 1968.
SOFTWARE IN THE SOVIET UNION
285
Kmety, A. (1974). Demonstration of the R-20 at the capital city office for construction operations and administration. Szamifasfechnika (Budapest) April-May , 1-2. Koenig, R. A. (1976). An evaluation of the East German Ryad 1040 system. Pror. AFIPS Conf., pp. 337-340. Kommunisf (Yerevan) (1977). Nov. 29, 4. Komniunis~(Yerevan) ( 1978). Dec. 3 I , I . Kryuchkov, V., and Cheshenko, N. (1973). At one-third of capacity: Why computer efficiency is low. Izvrstiva June 14, 3. Kudryavsteva. V. (1976a). Sou. Eeloruss. April 25, 2. Kudryavsteva, V. ( 1976b). Sov. Belciruss. July 18, 4. Kulakovskaya, V. P. ef a/. (1973). “Minsk-32 Computer COBOL.” Statistika, Moscow. Kuzin, L. T., and Shohukin, B. A. (1976). “Five Lectureson Automated Control Systems.” Energiya. Moscow. Lapshin, Yu. ( 1976). Maximizing the effectiveness of computer technology. S O I . Itid. Sept. 1.
Larionov, A. M.. Levin, V. K., Raykov, L. D., and Fateyev, A. E. (1973). The basic principles of the construction of the system of software for the Yes EVM. Upr. Sisf. Mush. May-June (3). 129-138. Larionov, A. M., ed. (1974). “Software Support for ES Computers.” Statistika, Moscow. Leonov, 0. I. (1966). Connecting a digital computer to telegraph communication lines in a computer center. Mekh. Avtom. Proiz. (8). 4 0 4 2 . Letov, V. (1975). Computer in the basement. Izvestiyrr Aug. 22, 3. Liberman, V. B. (1978). “Information in Enterprise ASU.” Statistika, Moscow. Mamikonov, A. G . et ( I / . (1978). “Models and Methods for Designing the Software of an ASU.“ Statistika, Moscow. Meliksetyan. R. (1976). Nrdr/ya Dec. 27, 3. Mijalski, Czelslaw (1976). The principles, production and distribution of the software of MERA-ELWRO computers. Informufyku (Wursuw) Nov., 27. Mitrofanov, V. V., and Odintsov, B. V. (1977). “Utilities in OS/ES.“ Statistika, Moscow. Mooers. C. N. ( 1977). Preventing software piracy. I n “Microprocessors and Microcomputers” (selected reprints from Computer), pp. 67-68. IEEE Computer Society. Mo.skoi~.skcryrrPravtkr ( 1978). April 8. 3. Myasnikov, V. A. (1972). Need for improved computer technology. I z w s t i y u May 27, 2. Myasnikov, V. A. ( 1974). Automated Management Systems Today. Ekon. Organ. Promyshl. Proizv. (6). 87-%. Myasnikov, V. A. (1976). Sov. Ross. Dec. 24. 2. Myasnikov. V. A. (1977). Results and priority tasks in the field of automation of control processes in the national economy of the USSR. Upr. Sisr. Mash. ( K i e v ) Jan.-Feb. ( I ) , 3-6. Myers, G. J. (1976). “Software Reliability.” Wiley, New York. Naroditskaya, L. (1977). New computers are running . . . We audit fulfillment of Socialist pledges. Pruvdu Ukr. Nov. 18, 2. NASA ( 1977). Standardization, certification, maintenance, and dissemination of large scale engineering software systems. NASA Conference Publication No. 2015. Naumov, B. N. (1977). International small computer system. Prib. Sisf. Upr. (lo), 3-5. Naumov, V. V. (1976). Real-Time Supervisor (SRV). Prograrnrnirovanie May-June, 54-60. Naumav, V. V.. Peledov, G. V., Timofeyev. Yu. A , . and Chekalov, A. G. (1975). ”Supervisor of Operating System ES Computers.” Statistika, Moscow. Nove, Alec (1%9). “The Soviet Economy” (2nd ed.). Praeger, New York. Novikov, 1. (1978). They put their AMS up for sale. Prrcvdu March 13, 2. Novikov, N. (1972). Idle computers. Pravdcr Aug. 21.
286
S . E. GOODMAN
Novoshilov, V. (1971). The levels of mathematics. Izvestiya Jan. 17, 3. OECD Report ( 1969). Gaps in technology-Electronic computers. Organization for Economic Cooperation and Development, Paris. Ovchinnikov, Yu. (1977). Science in a nation of developed socialism. Izvestiyci Nov. 18, 2 . Parrott, Bruce B. (1977). Technological progress and Soviet politics. In (Thomas and Kruse-Vaucienne, 1977). 305-328. Peledov, G. V.. and Raykov, L. D. (1975). The composition and functional characteristics of the software system for ES computers. Programmirovanie Sept.-Oct. ( 3 ,46-55. Peledov, G. V., and Raykov, L. D. (1977). “Introduction to OWES.” Statistika, Moscow. Perlov, I. (1977). The ASU-Its use and return. Ekon. Zhizn (Tashkent) (6), 83-86. Pervyskin, E. K. (1978). Technical Means for the Transmission of Data. Ekon. Gaz. June (25). 7. Petrov, A. P. (1%9). “The Operation of Railroads Utilizing Computer Technology.” Transport, Moscow. Pevnev, N. I. (1976). “Automated Control Systems in Moscow and Its Suburbs.” Moskovsky Rabochy, Moscow. Pirmukhamedov, A. N. (1976). “Territorial ASU.” Ekonomika, Moscow. Pleshakov, P. S. (1978). Utilizing Automated Management Systems Efficiently: Computer Hardware. Ekonomicheskaya gazeta, July 31, 15. Rakovsky. M. (1977). Computers’ surprises. Pravda March 2, 2. Rakovsky, M. (1978a). According to a single plan. Pravda Feb. 3, 4. Rakovsky, M. (1978b). On a planned and balanced basis. Ekon. Gaz. June (23). 14. (Quotations from a translation in CDSP Vol. XXX. No. 24, p . 24.) Reifer, D. J. (1978). Snapshots of Soviet computing. Datamation Feb., 133-138. Rezanov, V. V., and Kostelyansky, V. M. (1977). Software for the SM-1 and SM-2 UVK. Prib. Sist. Upr. (lo), 9-12. Robotron (1978). EC- I055 electronic data processing system. VEB Kombinat Robotron Brochure, May 25. Rudins, George (1970). Soviet computers: A historical survey. Sov. Cybern. Rev. Jan., 6 4 4 . Sabirov, A. (1978). Specialty: cybernetics. Izvestiya March 12, 4. Saltykov, A. I., and Makarenko, G. I. (1976). “Programming in the FORTRAN Language” (Dubna FORTRAN for the BESM-6). Nauka, Moscow. Sarapkin, A. (1978). TO new victories. Sov. Beloruss. Jan. 4, I . Second AU Conf. Prog. (1970). Second All-Union Conference on Programming, Novosibirsk. (Translated abstracts in Sov. Cybern. Rev. May, 9-16). Shnayderman, 1. B., Kosarev, V. P., Mynichenko, A. P., and Surkov, E. M. (1977). “Computers and Programming.” Statistika, Moscow. Skilling, H. G., and Griffiths, F., eds. (1971). “Interest Groups in Soviet Politics.” Princeton Univ. Press, Princeton, New Jersey. Smith, H. (1977). “The Russians.” Ballantine, New York. Solomenko, E. (1975). Machines of the Unified System. Leningrudskaya Pravda May 15. Sovetskayu Estoniya (1978). March 15, 2. Sovetskaya Moldavia (1978). Jan. I , 2. Soverskaya Rossiya (1976). Sept. 11, 4. Tallin (1976). First IFAClIFIP Symposium on Computer Software Control, Estonia. Paper titles published in Prograrnmirovaniye (Moscow) (3, 100-102, and Vestn. Akad. Nauk S S S R ( I I ) , 1976, 93-94. Taranenko, Yu. (1977). How to service computers. S o t s . Ind. July 19, 2 . TECHMASHEXPORT ( 1978a). SM EVM Minicomputer Family: SM- I . SM-2. Marketing Brochure. Moscow.
SOfTWARE IN THE SOVIET UNION
287
TECHMASHEXPORT ( 1978b). SM EVM Minicomputer Family: SM-2. Marketing Brochure. Moscow. Thomas, J. R., and Kruse-Vaucienne, U. M.. eds. (1977). “Soviet Science and Technology, .’ pp. 305-328. National Science Foundation, Washington, D.C. Tolstosheev, V. V. (1976). “The Organizational and Legal Problems of Automatic Systems of Control.” Ekonomika, Moscow, pp. 49-50. Trainor, W. L. (1973). “Software-From Satan to Savior.” USAF Avionics Laboratory, Wright-Patterson AFB, Ohio. Referenced in (Boehm, 1975). Trofimchuk, M. (1977). HOWd o YOU work, computer? Pravda Ukrainy Sept. 7. Trud (1977). Jan. 14, 2. Trud (1978a). Jan. 4, 1. Trud (1978b). Nov. 7. Vasyuchkova, T. D., Zaguzoba, L. K., Itkina, 0. G . , and Savchenko, T. A. (1977). “Programming Languages with DOS ES EVM.” Statistika, Moscow. Vodnyy Transport (1977). Riga ship repair plant to use ASU with ‘Tver’ software system. Sept. 24, 4. Ware, W. H., ed. (1%0). Soviet computer technology-1959. Commun. ACM 3 (3), 131-166. Washington Post (1978). The battle of Minsk, or socialist man beats computer. March 28. Wegner, P., ed. (1977). Proc. Conf. on Research Directions in Software Technology. Final version to be published 1978, MIT Press, Cambridge, Massachusetts. White, H. (1977). Standards and documentation. I n (NASA, 1977), 20-26. Yanov. A. (1977). Detente after Brezhnev: The domestic roots of Soviet foreign policy. Policy Papers in International Affairs, No. 2. Institute of International Studies, University of California, Berkeley. Zadykhaylo, I. B. er a / . (1970). The BESM-6 operating system of the USSR Academy of Sciences’ Institute of Applied Mathematics. I n AU Conf. f r o g . , 2nd. 1970. Zarya Vosroka (1976). July 28, 2. Zhimerin, D. G . (1978). Qualitatively new stage. Ekon. Gaz. May 22, 7. Zhimerin, D. G., and Maksimenko, V. I., eds. (1976). “Fundamentals of Building Large Information Computer Networks.” Statistika, Moscow. Zhukov, 0. V. (1976). “Generation of Programs For Data Processing.” Statistika, Moscow. Zhuravlev, V. (1973). Translators for computers. Pravda Feb. 20.
This Page Intentionally Left Blank
Author Index Numbers in italics refer to the pages on which the complete references are listed.
A Adelson-Velskiy, G. M., 61, 98, 114 Adkins, K., 183,225, 227 Agafonov, V. N., 267,281 Akiyama, F., 137, 138, 168 Akl, S.. 97. 115 Alderman, D. L., 189,225 Allen, J., 204, 225 Amann, R., 249,281 Andon, F. I., 248,281 Andrews, H. C., 28.55 Arbuckle, T., 60, 115 Arlazarov, V. L., 61, 98. 106, 114. 115 Ashastin, R., 243, 253,281 Ashiba, N., 185,225 Atal, B. S., 202,225 Atkin. L. R., 61, 98. 117 Atkinson, R. C., 198, 203,225, 226, 227
Babenko, L. P., 237,281 Bailey, D., I I5 Baker, A. L., I 6 8 Bakharev, 1. A., 238,281 Bakker, I., 73, 115 Ballaben, G., 198,225 Barr. A., 198, 203,225, 226 Barsamian, H., 238,281 Bass, L. J., 171 Bass, R., 184,229 Baudet, G. M., 95, 115 Bauer, F. L., 232,281 Bayer, R., 168. 170 Bazeava, S. E., 244,282 Beard, M., 183, 193, 198,225, 226. 229 Bell, A. G.. 219,226 Bell, D. E., 138, 168 Bellman. R.. 106, 115 Belsky, M. S.. 60, 115 Belyakov, V., 281 Benbassat, G. V., 202,228
Benko, P., 115 Berenyi, I., 235,281 Berliner, H., 62, 70. 74, 77, 93, 94, I15 Berliner, J. S., 249, 252, 259, 261, 262,281 Bernstein, A., 60,115 Bespalov, V. B., 248,282 Betelin, V. B., 244,282 Bezhanova, M. M., 238,282 Bitzer, D., 176,226 Bjorkman, M., 159, 168 Blaine, L. H., 208, 211, 212,226, 228 Blum, H., 48,56 Bobko, I . , 254, 262,282 Bobrow, R., 218,226 Boehm, B. W., 232, 264,282 Bohrer, R., 168 Bork. A , , 190,226 Bornstein, M., 249,282 Borodich, L. I., 247,282 Borst, M. A,, 172 Botvinnik, M. M., 60, 115 Bowman, A. B., 171 Bratko, I., 106, 116 Bratukhin, P. I., 243, 247,282 Brian, D., 184, 222,229 Brich, Z. S., 282 Brown, J. S., 215, 218, 219, 220,226 Brownell, W. A., 215,226 Brudno, A. L., 95, 115 Bruning, R., 170 Bucy, J. F., 269,282 Bulut, N., 168 Bunderson, C. V., 189,226 Burton, R. R., 215, 218, 219, 220,226 Burtsev, V. S., 244, 245,282 Buxton, J. M.,232,282 Byrne, R., I15
C Cahlander, D., 73, 115 Campbell, H., 282 289
290
AUTHOR INDEX
Campbell, J. 0.. 203,225 Carr, B.. 217,227 Cave, M.,235,282 Chase, W. G., 109, 117 Chazal, C. B., 215,226 Chekalov, A.G., 241, 267,285 Cherkasov, Yu. N., 243, 247,282 Cheshenko, N., 285 Chevignard, D., 256,282 Church, K. W., 109, 115 Church, R. M.,109, 115 Clark, M. R. B., 106.115 Clinton, J. P. M.,229 Collins, A., 216,228 Comer, D., 162, 163, 169 Cooper, J. M.,249,281 Cornell, L., 137, 169 Crocker, S. D., 61, 98, 116 Cronbach, L. J., 213,227 Curtis, B., 172
D Davidzon, M.,253,282 Davies, R. W., 249,281 Davis, L. S., 28, 40,56, 57 Davis, N . C., 234, 235, 239, 243, 256, 281, 282 Davis, R. B., 176,227 de Groot, A. D., 60, 115 deKleer, J., 218, 226 Del Rio, B., 282 Dewey, J., 227 Deztyareva, G. S., 282 Dittert, W., 244,282 Dixon, J. K., 95, 117 Doncov, B., 237, 238,282 Donskoy, M. V., 61, 98, 114 Douglas, J. R., 85, 115 Drexhage, K. A., 233, 236, 238,283 Drozdov, E. A., 240, 247,283 Duda, R. O., 56 Dugdale, S., 176,227 Dyachenko. A. I., 256,283
E Eastlake, D. E., 61. 98,116 Edwards, D. J., 95, 116
Efimov, S . , 283 Elci, A., 169 Elshoff, J. L., 128, 142, 143, 169, 172 Emam, A. E., 198,228 Ercoli, P., 198,225 Ershov, A. P., 233, 234, 236, 266, 268.283 Euwe, M.,60, 115 Evreinov, E. V., 238,283
F Fadeev, V., 258,283 Fateyev, A. E., 241,285 Faust, G. W., 189,226 Felix, C. P., 131, 172 Filinov, E. N., 244,283 Fine, R., 105, 115 Fitzsimmons, A,, 133, 134, 169 Fletcher, J. D., 183, 184, 203,225, 227, 229 Frankel, T., 267, 281,284 Freeman, H., 48.56 Freeman, J., 55.56 Friedman. E. A., 155, 171 Friend, J., 220,228 Fu, K. S., 55.56 Fuller, S. H., 95, 96,115 Funami, Y.,137, 169 Fusfeld, D. R., 249,282 Futer, A. V., 106, 115
G Galeev, V., 256,283 Gaschnig, J. G., 95, %, 115 Gielow, K. R., 143, 170 Gillogly, J. J., 95, 96, 97, 115, 116 Gladkov, N., 237,283 Glushkov, V. M.,236, 238, 245,283 Godliba. O., 234,283 Goldberg, J. G., 265,283 Goldberg, A., 193, 195,227 Goldin, S., 216,228 Goldman, N . , 201,228 Goldstein, I. P., 201, 215, 217,226, 227 Goldwater, W., 76, 116 Gonzalez, R. C.. 7, 16, 27. 28,40,48,55,56 Good, I. J., 97, 116 Goodman, S. E., 234, 235, 239, 243, 256, 268, 281,282, 283
AUTHOR INDEX Gordon, R. D., 28,56, 131, 133, 16Y Gorlin, A. C., 252,284 Graham, L. R., 284 Graham, R. E., 28,56 Gramlich, C., 203,228 Granick, D., 249, 265, 267,284 Graves, W. H., 208, 212,228 Gray, A. H., 202,228 Green, W. B., 20, 24, 27,56 Greenblatt, R. D.. 61, 98, 116 Grey, F., 8, 56 Griffith. A. K., %, 116 Griffiths, F., 286
291
J Jamison, D., 184, 190,227 Jerman, J., 184, 222,229 Joseph, H. M., 28.56 Judy, R. W., 234,284
K
Kaiser, R. G . , 249,284 Kak, A. C., 7, 16, 27, 28, 40, 48, 55.57 Kanz, G., 229 Kaplan, J., I I6 Kastner, C. S., 173,227 Kasynkov, I., 245,284 H Kazansky, G., 239,284 Kennedy, D., 170 Habibi, A., 16, 56 Halstead, M. H., 131, 137, 143, 150, 156, Kharlonovich, I. V., 238,284 162, 163, 166, 169, 170, 171, 172 Khatsenkov, G., 239,284 Hamilton, M., 183,225, 227 Khusainov, B. S., 284 Hanauer, S. L., 202,225 Kibbey, D., 176,227 Hansen, D., 203,225 Kirnura, S., 185,227 Kister, J., 60, 116 Haralick, R. M., 55.56 Kitov, A. I . , 236,285 Hardt, J . P., 267, 281,284 Hart, P. E.. 56 Klatt, D., 204,227 Klobert, R. K., 170 Hart, T. P.,95, 116 Krnety, A., 285 Harvill, J. B., 170 Hausmann. C., 215, 218,226 Knuth, D. E., 94, 95, 98, 116 Hawkins, C. A., 227 Koenig, R. A., 241,285 Komarnitskiy, V. A., 240, 247,283 Hayes, J . , 61, I16 Kosarev, V. P., 247,286 Herman, G. T., 28,56 Holland, W. B . , 238, 268,284 Kosarev, Yu. G., 238,283 Horowitz, E., 232,284 Kostelyansky, V. M.,244,286 Huang, T. S., 8, 11, 15, 16.56 Kotok, A., 60, 116 Hubermann, B. J., 105, 116 Kovalevich, E. V., 282 Kovasznay, L. S. G., 28.56 Huggins, B., 215,226 Hunka, S . , 185,227 Kruse-Vaucienne, U. M., 287 Hunt, B. R., 28,55 Kryuchkov, V., 285 Kudryausteva, V., 237, 242, 244,285 Hunter, B., 173,227 Kulakovskaya, V. P., 247, 285 Hunter, L., 170 Kulm, G., 154, 170 Kuzin, L. T., 246,285 Kvasnitskiy, V. N., 243, 247,282
I
Ignatyev, M. B., 245,283 Ingojo. J . C., 170 Itkina, 0. G., 240, 287 Ivanenko, L. N., 255,284 Izmaylov, A . V., 253,284
L Laddaga, R.,203,227 Laemrnel, A.. 171, 172 Lapshin, Yu.,243,285
AUTHOR INDEX Larionov, A. M., 24 I , 285 Larsen, I., 193,227 Lasker, E., 76, 116 Laymon. R., 192,227 Leben, W.R., 203,227 Lecarme, 0.. 173,228 Legault, R., 5 , 8,56 Lekan, H. A., 173,228 Leonov, 0. I., 237,285 Letov, V., 253.285 Levein, R. E., 173,228 Levin, V. K., 241,285 Levine, A., 202, 203,227, 228 Levitin, V. V., 244,282 Levy, D., 61,64, 71, 77, 106, 107, 116 Lewis, R., 173,228 Liberman, V. B., 246.285 Limb, J. O., 16,56 Lindsay, J., 203,225 Lipow, M., 171 Lisitsyn, V. G., 243, 247,282 Lloyd, T., 192,227 Lorton, P. V.,Jr., 184,229 Love, L. T., 133, 134, 169, 171, 172
McCabe, T. J., 141, 171 McDonald, J., 21 I , 226 McGlamery, B. L., 27.56 Macken, E., 184, 201,228, 229 Magidin, M., 171 Makarenko, G. I., 268,286 Makhoul, J., 202,228 Maksimenko. V. I . , 243, 247,282, 287 Mamikonov, A. G. 246,285 Marasco, J., 190,226 Marinov, V. G., 208, 212,228 Markel, J. D., 202,228 Markosian, L. Z., 193,227 Marsland, T. A., 69, 73, 116, 117 Max, J., 8,56 Mazeev, M. Ya., 236.285 Meliksetyan, R., 245. 285 Mertz, P., 8,56 Michalski, R., 106, 116 Michie, D., 77, 106, 116 Middleton, D., 8 , 5 7 Mijalski, C., 262,285 Mikheyev, Yu. A.. 243, 247,282
Millan, M. R., 198,228 Miller, G. A., 155, 171 Miller, J., 171 Miller, M., 215, 218,226 Mitrofanov, V. V.,24 I , 285 Mittman, B., 61, 116, 117 Mooers, C. N., 270, 276,285 Moore, R. N., 94, 95, 116 Morningstar, M., 222,229 Morrison, M. E., 70, 116, 117 Moser, H. E., 215,226 Myasnikov, V. A., 234, 237, 245, 247, 253, 254, 262,285 Myers, G. J., 232,285 Mynichenko, A. P., 247.286
N Naroditskaya, L., 244,285 Naumov, B. N., 244,285 Naumov, V. V., 241, 242, 267,285 Naur, P., 232,282 Negri, P.,106, 116 Newborn, M. M., 61, 62, 95, 97, 105, 109, 115, 117 Newell, A., 60, 95, 117 Newman, E. B., 155, I71 Nilsson, N., 95, 117 Nove, Alec, 249,285 Novikov, I., 252, 255,286 Novikov, N., 237,286 Novozhilov, V., 266,286 Nylin, W.C., Jr., 170
0 Odintsov, B. V., 241,285 O’Handley, D. A,, 20, 24, 27,56 Oldehoeft, R. R.. 171. 172 Ostapko, D. L., 171 Ottenstein, K. J., 152, 169. 171 Ottenstein, L. M., 137, 171 Ovchinnikov, Yu.,269, 286
P Panda, D. P..40,56 Papert, S., 201, 217,227
AUTHOR INDEX Parrott, B., 252,286 Partee, B., 201,228 Pavlidis, T., 16, 55,56 Peledov, G. V., 241, 267,285, 286 Penrod, D., 84, 117 Perlov, I., 258,286 Pervyskin, E. K., 286 Peterson, D. P., 8.57 Petrov, A. P., 238,286 Pevnev. N. I., 246,286 Piasetski, L., 106, 117 Pirmukhamedov, A. N., 246,286 Pleshakov, P. S., 243,286 Poulsen, G., 184,228 Prasada, B., 11.56 Pratt. W. K., 16, 27, 28, 40, 48, 55.57 Purcell, S., 218,226 Pyatibratov, A. P., 240, 247,283
Rakovsky, M.,241, 243, 245, 247,286 Randell, B., 232,282 Raykov, L. D., 241,285, 286 Reifer, D. J., 254,286 Rezanov, V. V., 244,286 Rice, J. R., 136, 171 Richter, H., 69, 117 Rieger, C.. 201,228 Riesbeck, C., 201,228 Roberts, M. De V., 60, 115 Robinson, S. K., 171 Romanovskaya, L. M.,237,281 Rosenfeld, A., 7. 16. 27. 28, 40, 48, 55.56, 57 Rubin, M. L., 173,227 Rubin, Z. Z., 161, 171 Rubinstein, C. B., 16.56 Rubinstein. R., 215, 219,226 Rudins, George, 234,286 Russell, B., 228 Ruston, H., 150, 171
S Sabirov, A., 266,286 Sakamoto, T., 185,228 Saltykov, A. L., 268,286 Sanders, W. R., 202, 203,227, 228 Santos, S. M. dos, 198,228
293
Sarapkin, A., 243,286 Savchenko, T. A., 240,287 Schacter, B. J., 40,57 Schank, R. C., 201,228 Schneider, V. B., 137, 169, 171 Scott, J. J., 98, 117 Searle, B. W., 184. 220,228, 229 Seidel, R. J . , 173,227 Semik, V. P., 244,283 Shannon, C. E., 59, 117, 124, 172 Shaw, J . , 60, 95, 117 Shen, V. Y., 131, 151, 161, 172 Sheppard, S. B., 172 Sherwood, B. A., 176,228 Shiller, F. F., 236', 285 Shnayderman, I. B., 247,286 Shohers, A. L., 243, 247, 282 Shohukin, B. A., 246,285 Shooman, M. L., 171, 172 Shura-Bura, M. R., 233, 234, 236, 266. 268, 283 Simon, H. A., 60,95. 109, 117 Skilling, H. G., 286 Sklansky, J., 55,57 Skovorodin, V.,234,283 Slagle, J. R., 95, 117 Slate, D. J., 61, 98, 117 Smith, H., 249,286 Smith, R. L., 183, 193, 198, 202, 208, 212. 228, 229 Smith, S . T., 176, 228 Snow, R. E., 213,227 Solomenko, E., 265,286 Soule, S . , 69, 117 Stein, P., 60, 116 Stevens, A. L., 216,228 Stockham, T. G., Jr., 28, 57 Stolyarov, G. K., 237,281 Strizhkov, G. M., 248.282 Stroud, J. M., 129, 172 Su, S. Y. W., 198,228 Sullivan, J. E., 138, 168 Suppes,P., 183. 184, 190. 193, 195, 197, 198, 201,203, 207, 208, 220, 222,227, 228. 229 Surkov, E. M.,247,286 Symes, L. R., 172
T Tan, S. T., 106, 117 Taranenko, Yu., 258,286
294
AUTHOR INDEX
Tarig, M. A., 172 Thayer, T. A., 138, 171, 172 Thomas, J. R., 287 Thompson, J. E., 16.56 Timofeyev, Yu. A., 241, 267,285 Tolstosheev. V. V., 259,287 Torgashev, V. A,, 245,283 Torsun, I. S., 171 Trainor, W. L., 264,287 Tretiak, 0. J., I I , 56 Trofimchuk, M., 254, 257,287 Turing, A. M., 59, 117
U Uber, G. T., 143, 170 Ulam, S., 60,116
V Vasyuchkova, T. D., 240,287 Vinsonhaler, J., 184,229 Viso, E . , 171 Vogeli, B. R., 265,283 Voyush, V. I . , 282
W Walden. W., 60, 116 Walker, M. A., 172 Walston, C., 131, 132, 172 Wang, A. C., 173,229 Ware, W. H., 234,287 Wegner, P., 232,287
Weiss, D. J., 186,229 Wells, M., 60, 116 Wells, S., 184, 190, 227 Weszka, J. S . , 40.57 White, H., 257,287 Wiener, N., 59, 117 Wilkins, L. C., 16,57 Winograd, T., 229 Winston, P. M., 57 Wintz, P. A., 7, 14, 16,27,28,40,48,55,56, 57 Woodfield, S. N., 148. 172 Woods, W., 201,229 Wu, E-Shi, 199,229
Y Yamaguchi, Y., 11.56 Yanov, A,, 273,287 Yob, G., 217,229 Yushchenko, E. L., 237,281, 283
Z Zadykhaylo, I. B., 238,287 Zaguzoba, L. K., 240,287 Zanotti, M., 184,229 Zhimerin. D. G., 243, 246, 247, 253, 254, 262,287 Zhukov, 0. V., 247, 267.287 Zhuravlev. V.. 287 Zipf, G. K., 172 Zislis, P. M., 153, 172 Zucker, S. W., 40,57 Zweben, S. H., 143, 168, 172
Subject Index
A AIST project, 238 ALGAMS, in Soviet Union, 247, 257 ALGOL, in Soviet Union, 245, 247 ALGOL-COBOL, in Soviet Union, 236 ALGOL-60, in Soviet Union, 236 Algorithm, potential volume and, 122-123 Algorithm generator, 143-144 Aliasing, 4-5 All-Union Association Soyuz EVM Komplex, 254 All-Union Institute for Scientific and Technical Information, Soviet Union, 259 Alpha-beta algorithm, 94-97 Alpha-beta window, in computer chess, 97-98 American Geophysical Union, 156 ANALITIK, in Soviet software, 236 Analogies, method of, in computer chess, 98 Approximation techniques, 10-12 Arbitrary constants, freedom from, 166-168 Area, in digital picture, 49 ASU (automated controllmanagement systems), in Soviet Union, 246-247, 255256 Audio, choice of by university students, 206-207 Autocorrelation, of picture, 50
B BASIC language, in computer chess, I I I BELL chess opening library, 99 BELLE program, 78 Bernay's enumeration theorem, in computer-assisted information. 208-21 I BESM-6 computer, in Soviet Union, 237238, 265 Binary images, coding of, 15-16 Blitz chess, 106-1 10 Border curves, representation of, 43-44 BORIS chess macroprocessor, 110-1 1 1
Boundary volume, in software science, 146-147 BTAM system, in Soviet Union, 240 BUGGY instructional game, 220 Bugs classification and counting of, 137 total vs. validation, 137 Busyness measurement of, 52-53 in pixel classification, 32
C CAI, see Computer-assisted instruction California, University of, 190 CDC CYBER 170 series, 63 CDC CYBER 176 series, 71 CDC 6400 computer, 66 CDC 6600 computer, 61-62 CEMA (Council for Economic Mutual Assistance) countries, 233, 239-240, 244245, 269, 271-272, 277 Chain code, 43-44 curve segmentation and, 46 defined, 45 Change detection, 37 CHAOS program, 71, 73, 87, 98-99 Chess, computer, see Computer chess CHESS CHALLENGER program, 84, 1 1 0 - 1 13 Chess information, differential updating of, 98-99 Chess programs, chess-specific information in, 99-100 see also Computer chess CHESS 2.0 program, 61 CHESS 3.0 program, 68 CHESS 4.0 program, 61-63 CHESS 4.4 program, 64-65, 67 CHESS 4.5 program, 70-72, 74-78, 107 CHESS 4.6 program, 70, 73, 77-80, 82, 84-89, 98-99, 101-103, 105, 108 CHESS 4.7, 61, 90-91, 101, 110-111
295
296
SUBJECT INDEX
“Chunking” concept, in debugging, 137-138 COBOL, in Soviet Union, 257 Codasyl system, in Soviet Union, 248 Coding exact, 9-10 in image processing and recognition, 8-16 types of, 9-16 COKO program, 72, 100 College physics, computer-assisted instruction in, 190-191 Color edges, detection of, 34 Color picture, pixel color components in, 30-3 1
Communist Party, computer industry and, 260-26 1
Community college courses, computerassisted instruction in, 186-190 Component labeling, in representation process, 41-43 COMPU-CHESS microcomputer, 110 Computer-assisted instruction, 173-225 audio uses in, 201-207 in college physics, 190-191 in community college courses, 186-190 in computer programming, 198 current research in, 199-222 in elementary and secondary education, 175- I85
evaluation of, 183-185 future of, 222-225 informal mathematical proofs in, 207-212 in letter recognition by school children, 203-206
in logic and set theory, 191-198 in natural-language processing, 200-201 PLAT0 system in. 176-179 in postsecondary education, 185-199 student modeling in. 212-222 videodisks in, 223 Computer chess, 59-1 14 endgame play in, 100-106 finite depth minimax search in, 93 forward pruning in, 94 future expectations in, 113-1 14 horizon effect in, 93 Jet Age of, 62 mating tree in, 68-69 with microcomputers, 110-1 13 minimax search algorithm in, 92-93 opening libraries in, 99-100
Paul Masson Chess Classic and, 70 principal continuation in, 93 programming in, 110-1 1 I scoring function in, 93 speed chess and, 106-1 10 tree-searching techniques in, 92-99 Computer Curricular Corporation, CAI courses of, 179-185 Computer graphics, defined, 3 Computer program “completely debugged,” 135 comprehensibility of, 134 e.m.d. count for, 136-138 implementation level in, 123-125 machine language in, 120-121 vocabulary of, I 2 I volume concept in, 122 Computer programming, see Programming CONDUIT State of the Art Reports, 185 Connectedness, in representation, 41-42 Contour coding, 10 Contrast enhancement, in image enhancement, 17 Contrast stretching, 18 Control Data Corporation, 63 see also CDC-6600 computer Convex hull, defined, 49 Counting, representation and, 42-43 Critique of Judgment (Kant), 216 Curve detection, 35-36 iterative, 38-40 Curve segmentation, 46-48 Curve tracking, in sequential segmentation, 37-38
CYBER 176, 76
D Database management systems, in Soviet Union, 248 Debugging in “completely debugged program,” 135 error rates and, 136-141 Democracy and Education (Dewey), 213 Difference coding, 13 Digital picture, 2 Digitation defined, 2-3 work involved in, 3-4 Directionality spectrum, 46
297
SUBJECT INDEX Distortion, in pattern matching, 36-37 Dither coding, I5 DOWES system, Soviet Union, 240 DUCHESS chess program, 78, 82, 87-90, 98-99,104,109
E Edge detection in image processing, 29, 33-34 in picture segmentation, 33-34 Education, computer-assisted instruction in, 175- I85 see also Computer-assisted instruction Educational Testing Service, 189 8080 CHESS program, 1 I 1 Elementary education, computer-assisted instruction in, 175-185 Elementary mathematics, PLAT0 system in, 176-177 Elementary reading, computer-assisted instruction in, 178-179 Elementary-school children, letter recognition by, 203-206 Elongatedness, 49 ELORG centers, Finland, 273 ELWRO-Service, Poland, 262 Endgame play, in computer chess, 100-106 Error rates, in software technology, 136-141 ES- 1030 minicomputer, 239 ’I)*, relation with ql,146-148 Q*, use of in prediction, 148-150 EXCHECK system, 212
Fourier power spectrum, 50-51 Fourier transform coding, 14 Fourier transforms, in deblurring process, 23 Fuzzy segmentation, 38-40 Fuzzy techniques, 29, 38-40
G Geometric distortion, correction for, 20 Geometric normalization, 50 Geometric properties, in image processing, 49-5 I Geometric transformation, in image enhancement, 18-19 German Computer Chess Championship match, 69 GOST, in Soviet Union, 257 Gray-level-dependent properties, in image description, 51-54 Grayscale modification, 17-18
H H a u s d o a maximal principle, 21 1-212 High-emphasis frequency filtering, 24-25 Histogram flattening, 17-18 Hole border, defined, 44 Homomorphic filtering, in noise cleaning, 21 Honeywell 6050 computer, 62, 66 Horizon effect, in computer chess, 93-94 “How the West Was Won” game, 218
F
I
FIDE (Federation Internationale des cchecs), 61 n. Finite depth minimax search, in computer chess, 93 Foreign languages, computer-assisted instruction in, 199 FORTRAN algorithm in, 120 in computer chess, 1 1 I uf in. 148-150 problems in, 151-152 in software science, 121 in Soviet Union, 236 “well documented program” in, 153-154
IBM S/360 system, in Soviet Union, 239-240 IBM S/370 system, in Soviet Union, 243 ICAI, see Intelligent computer-assisted instruction Image see also Picture busyness of, 32, 52-53 enhancement of, see Image enhancement Fourier transform of, 12 projection of, 26 restoration of, see Image enhancement transforming of, 12-15 Image fpproximation, 10-12 Image coding, 8-9
SUBJECT INDEX Image enhancement, 16-28 deblumng in, 23-26 defined, 2 geometric transformations in, 18-19 grayscale modification in, 17-18 high-emphasis frequency filtering in, 24-25 inverse filtering in, 23 noise cleaning in, 19-23 reconstruction from projections in, 26-27 tomography as, 26-28 Wiener filtering in, 23 Image processing, 1-55 chain codes in, 45-46 definitions in, 1-8 description in, 48-55 pattern matching in, 34-37 representation in, 40-48 Image recognition, defined, 2-3 Image reconstruction, defined, 2 Institute of Cybernetics (Kiev), 248 Institute of Precise Mechanics and Computer Engineering (Moscow), 244 Institute of Theoretical and Experimental Physics program, 60, 100 Instruction, computer-assisted, see Computer-assisted instruction Intelligent computer-assisted instruction, 2 13-2 I4 see also Computer-assisted instruction examples of, 217-221 research in, 214-217 specialists’ knowledge in, 2 16-217 weaknesses of, 221-222 Interframe coding, 16 Inverse filtering, 23 Inverse Fourier transforming, 23 in pattern matching, 36 ITEP program, 60, 100 Iterative curve detection, 38 Iterative deepening, in computer chess, 97
J Japan, educational technology in, 185 Japanese software, in Soviet economy, 274 Jet Age of computer chess, 62-69
K KAISSA chess opening library, 99 KAISSA program, 61 Kalman filtering, in noise cleaning, 23 Killer heuristic, in computer chess, 97 Kotok-McCarthy program, in computer chess, 94, 100
L Language arts, computer-assisted instruction in, 182-183 Language level, defined, 125 Learning, in software science, 158-161 Leningrad State University, 265 Letter recognition, by elementary-school children, 203-206 Lines of code, extension of program language to, 130-132 LISP program, in Soviet Union, 237 Logic and set theory, computer-assisted instruction in, 191-198
M Mac Hack VI program, in computer chess, 60, 84, 94, 98 MASTER program, 73 Mastery, time required for, in software science learning, 158-160 MAT, see Medial axis transfer Matched filter theorem, 35 Mathematical information theory, “information content” of, 124 Mathematical proofs, computer-assisted instruction in, 207-212 Mathematics strands, in computer-assisted instruction, I8 1-182 Mating tree, 83 Medial axis transform, 45 Mental effort hypothesis, in software science, 129-130, 163 MESM computer, in Soviet Union, 233 Microcomputers, in computer chess, 110113 Minimax search algorithm, in computer chess, 92-93 Moire patterns, 4-5 Moscow Aviation Institute, 265
SUBJECT INDEX Moscow State University, 265-266 Motion detection, 37
N National Science Foundation, 189 Natural-language processing, CAI in, 20020 1 Net vocabulary ratio, in software science, 156-158 Nichomachean Ethics (Aristotle), 216 Noise cleaning, in image enhancement, 19-22 North American Computer Chess Championship, 71
0 Ohio State University, computer-assisted instruction at, 191-193 OLTEP program, Soviet Union, 241 On Liberty (Mill), 175 Operators, rank-ordered frequency of, 143 ORWELL program, 73 OSTRICH chess program, 73, 87, 11 1-1 12 Outer border, defined, 44
P PASCAL machine language, 151-152 Pattern matching distortion in, 36 in image processing, 29, 34-37 as segmentation, 34-37 Paul Masson Chess Classic, 70 PDP-I0 computer, 68 Perimeter, defined, 49 Phaedrus (Plato), 174, 225 Picture see also Image autocorrelation in, 50 brightness or color variation in, 2 busyness of, 32, 52-53 detection of lines and curves in, 35-36 digital, see Digital picture moments of, 52 relationships among regions of, 54 Picture segmentation, 28-40 local property values in, 33
299
PIONEER chess program, 81, 83 Pixel(s) in area measurement, 49 classification and clustering of, 28-33 in connectedness, 41-42 defined, 2 in difference coding, 13 in noise cleaning, 19, 21-23 in sequential segmentation, 37 in “skeletons,” 45 in spurious resolution, 6 thresholding method for, 29-30 PLATO biology course, 186-189, 202 PLATO “How the West Was Won” game, 218 PLATO mathematics course, 176-179 Poland, ELWRO-Service firm in, 262 Postsecondary education, computerassisted instruction in, 185-199 Potential language, as concept, 123 Potential volume, 122 Principal continuation, in computer chess, 93 Program clarity, measures of, 133-136 Program maintenance, 134-135 Programming see also Computer program clarity in, 133-136 computer-assisted instruction in, 198 in English prose, 154-158 in Soviet Union, 248 Programming rates vs. project size, 132-133 Properties, geometric, see Geometric Properties Pseudocolor enhancement, 17
Q Quantization defined, 6 false contours and, 6-7 tapered, 6
R Radio Mathematics Project, 220 Reading, computer-assisted instruction in, 182 Region properties, measurement of, 48-55
300
SUBJECT INDEX
Regions, relationships among, 54 Registration, in pattern matching, 37 Relaxation methods, curve detection in, 38-40 Representation, connectedness in, 4 1-42 Resolution, spurious, 6 RIBBIT program, 62-64 Run length coding, 10 Runs, representation of, 42-43 Ryad computer system, Soviet Union, 236-237, 240-244, 251, 256-258, 269271, 273-274, 279
S Sampling, 4-6 defined, 4 Sampling theorem, 4 School children, letter recognition by, 203206 Scientific Research Institute for Electronic Computers (Minsk), 242 Secondary education, computer-assisted instruction in, 175-185 Segmentation edge detection in, 33-34 fuzzy. 38-40 in image processing, 28-40 pattern matching in, 34-37 pixel classification in, 29-33 sequential, 37-38 Semantic partitioning, in software science, 153-154 Sequential segmentation, curve tracking in, 37-38 Sequential techniques, 29, 37-38 Set theory, computer-assisted instruction in, 191-198 Shannon-Fano-Huffman coding, 9-10, I5 Shape complexity, measurement of, 49 SIMULA 67, in Soviet Union, 237, 247, 274 Skeletons, representation by, 45-46 SNOBOL, in Soviet Union, 237, 247 Software, Soviet, see Soviet software Software analyzer, 154 Software science see ulso Computer program; Programming advances in, 119-168 basic metrics in, 120-121
boundary volume in, 146 clarity in, 133-136 defined, 119-120 error rates in, 136-141 extension of to “lines of code,” 130-132 grading student programs in, 150-153 implementation level in. 123-125 lack of arbitrary constants in, 166-168 language level in, 125 learning and mastery in, 158-161 measurement techniques in, 141-143 mental effort and, 129-130, 163-164 modularity hypothesis in, 162-165 net vocabulary ratio in, 156-158 operators and operands in, 141 potential volume in, 122-123 programming rates vs. project size in, 132-133 rank-ordered frequency of operators in 143- I46 relation between 7,and q2 in. 146-148 semantic partitioning in, 153-154 technical English in, 154-158 text file compression in, 161-162 “top down” design of prose in. 162-166 United States vs. Soviet Union in, 252554 vocabulary-length equation in, 126-128 volume in, 122 SOPHIE system, 219 Soviet bureaucracy, computer and, 249-250 Soviet computers models of, 234-235 shortcomings of,235 software in context of, 249-256 Soviet hardware see ulso Soviet computers; Soviet Union deficiency correction in, 245 marketing activity and, 260 since 1972, 239-249 Soviet software, 23 1-281 automated control/management systems in, 246-247, 255-256 autonomy in, 253 Communist Party and. 260-261 computer models and, 234 control of technology transfer in, 275-278 Cyrillic vs. English in, 241 deficiency correction in, 247
301
SUBJECT INDEX development process in, 261-265 documentation in, 264-265 economic system and, 279-280 European sources of, 273-274 external sources for, 273-275 improvements needed in, 254, 280-281 internal diffusion and, 256-261 Japanese sources of, 274 maintenance of, 264 manpower development for, 265-268 MESM computer and, 233 producer-client get-together in, 26 1-262 programming languages in, 236 regulation and control of, 276-277 requirements specification in, 262 since 1972. 239-249 Soviet economic system and, 249-256 Survey Of, 233-249 system design and implementation in, 263 systemic difficulties and, 251 technology transfer in, 268-278 testing of, 263-264 university education and, 265-267 United States sources of, 271-274 upgrading and distribution of, 252 Western influence on. 268-275, 279 Soviet Union ALGOL in, 247 ALGOL-60 in, 236. 245 ASUs in, 246-247. 255-256 central control in. 251 COBOL in, 257 computer consciousness level in, 267 computer models available in, 235-235, 239-249, 260 computer publications and conferences in, 259-260 computer use in, 234-235, 255-256, 278 database management systems in, 248249 FORTRAN in, 236 IBM products in, 239-240 Japanese software and, 274 management use of computers in, 255-256 minicomputers in. 279 programming in, 235. 255 Ryad project in, 236, 240-244, 251, 253, 256-258, 269-27 I , 273-274, 279 software in, see Soviet software
software technology transfer in, 268-278 S/360 computer system in, 271 time-sharing in, 237, 247 Unified System in, 256-257 Stanford University, computer-assisted instruction at, 193-198 Stereomapping, 37 Strands strategy, in computer-assisted instruction, 179- I8 1 Strips, in skeleton representations, 46 Student, modeling of in computer-assisted instruction, 2 12-222 Student errors, analysis of, 215
T TECH chess program, 97 TECHMASHEXPORT program, Soviet Union, 244 Technical English, in software science, 154-158 T E L L program, 73 Template matching, see Pattern matching TENEX operating system, 202 Text file compression, in software science. 161- 162 Texture edge detection, 35 Thin bridges, erasure of, 42 Thinning process, in representation, 45-46 TICCIT project, in computer-assisted instruction, 189-190, 202 Tomography, 26-28 Transform coding, 14 Transformations, 14-15 Transposition tables, in computer chess. 98 TREEFROG chess program, 64,66. 68, 7 1-72 Tree-searching techniques alpha-beta algorithm in, 94-97 alpha-beta window in. 97-98 forward pruning and, 94 iterative deepening in, 97 killer heuristic in. 97 method of analysis in, 98 minimax search algorithm and, 92-93 transposition tables in, 98 Tsentroprogrammsistem Scientific Production Association (Kalinin), 253
302
SUBJECT INDEX
U Undersampling, 4 Unified System of Computers (Soviet Union, 239 United States software science in, 252 and Soviet software technology transfer, 271-274,280-281
V Venn diagrams, 192 Videodisks, in computer-assisted instruction, 223 VINITI program, Soviet Union. 259
Vocabulary-length relation relative errors and, 165 text file compression and, 161-162 Volume, concept of in computer program, 122 VOTRAX system, 204
W Wiener filtering, 23 WITA chess program, 68 Wumpus game, computer approach to, 2 17-2 18
X X chess program, 68
Contents of Previous Volumes Volume 1
General-Purpose Programming for Business Applications CALVIN C . GOTLIEEI Numerical Weather Prediction A. PHILLIPS NORMAN The Present Status of Automatic Translation of Languages YEHOSHUABAR-HILLEL Programming Computers to Play Games ARTHURL. SAMUEL Machine Recognition of Spoken Words RICHARDFATEHCHAND Binary Arithmetic GEORGE W. REITWIESNER Volume 2
A Survey of Numerical Methods for Parabolic Differential Equations J I MDOUGLAS, JR. Advances in Orthonormalizing Computation PHILIP J. DAVISAND PHILIP RAEIINOWITZ Microelectronics Using Electron-Beam-Activated Machining Techniques KENNETH R. SHOULDERS Recent Developments in Linear Programming SAUL1. GLASS The Theory of Automata, a Survey ROBERTMCNAUGHTON Volume 3
The Computation of Satellite Orbit Trajectories SAMUEL D. CONTE Multiprogramming E. F. CODD Recent Developments of Nonlinear Programming PHILIP WOLFE Alternating Direction Implicit Methods RICHARDS. VARGA,A N D DAVIDYOUNG GARRET BIRKHOFF, Combined Analog-Digital Techniques in Simulation HAROLD F. SKRAMSTAD Information Technology and the Law REED C. LAWLOR Volume 4
The Formulation of Data Processing Problems for Computers WILLIAM C. MCGEE
303
CONTENTS OF PREVIOUS VOLUMES All-Magnetic Circuit Techniques A N D HEWITTD. CRANE DAVIDR. BENNION Computer Education HOWARD E. TOMPKINS Digital Fluid Logic Elements H.H. GLAETTLI Multiple Computer Systems WILLIAMA. CURTIN Volume 5
The Role of Computers in Electron Night Broadcasting JACKMOSHMAN Some Results of Research on Automatic Programming in Eastern Europe WLADYSLAW TURKSI A Discussion of Artificial Intelligence and Self-Organization GORDONPASK Automatic Optical Design ORESTES N. STAVROUDIS Computing Problems and Methods in X-Ray Crystallography L. COULTER CHARLES Digital Computers in Nuclear Reactor Design ELIZABETH CUTHILL An Introduction to Procedure-Oriented Languages HARRY D. HUSKEY Volume 6
Information Retrieval CLAUDE E. WALSTON Speculations Concerning the First Ultraintelligent Machine IRVINGJOHNGOOD Digital Training Devices R. WICKMAN CHARLES Number Systems and Arithmetic L. G A R NER HARVEY Considerations on Man versus Machine for Space Probing P. L. BARGELLINI Data Collection and Reduction for Nuclear Particle Trace Detectors HERBERT GELERNTER Volume 7
Highly Parallel Information Processing Systems JOHNC. MURTHA Programming Language Processors RUTHM. DAVIS The Man-Machine Combination for Computer-Assisted Copy Editing W A Y N E A. DANIELSON Computer-Aided Typesetting WILLIAMR. BOZMAN
CONTENTS OF PREVIOUS VOLUMES
305
Programming Languages for Computational Linguistics ARNOLDC. SATTERTHWAIT Computer Driven Displays and Their Use in MadMachhe Interaction ANDRIESVAN DAM Volume 8
Time-shared Computer Systems THOMAS N . PYKE,JR. Formula Manipulation by Computer JEANE. SAMMET Standards for Computers and Information Processing T. B. STEEL,JR. Syntactic Analysis of Natural Language NAOMISAGER Programming Languages and Computers: A Unified Metatheory R. NARASIMHAN Incremental Computation LIONELLO A. LOMBARDI Volume 9
What Next in Computer Technology W. J. POPPELBAUM Advances in Simulation JOHNMCLEOD Symbol Manipulation Languages PAULW. ABRAHAMS Legal Information Retrieval AVIEZRIS. FRAENKEL Large Scale Integration-an Appraisal L. M. SPANDORFER Aerospace Computers A. S. BUCHMAN The Distributed Processor Organization L. J. KOCZELA Volume 10
Humanism, Technology, and Language CHARLES DECARLO Three Computer Cultures: Computer Technology, Computer Mathematics, and Computer Science PETERWEGNER Mathematics in 1984-The Impact of Computers BRYANTHWAITES Computing from the Communication Point of View E. E. DAVID, JR. Computer-Man Communication: Using Computer Graphics in the Instructional Process FREDERICK P. BROOKS, JR.
306
CONTENTS OF PREVIOUS VOLUMES
Computers and Publishing: Writing, Editing, and Printing ANDRIES V A N DAMA N D DAVIDE. RICE A Unified Approach to Pattern Analysis ULF GRENANDER Use of Computers in Biomedical Pattern Recognition ROBERTS . LEDLEY Numerical Methods of Stress Analysis WILLIAM PRAGER Spline Approximation and Computer-Aided Design J. H.AHLBERG Logic per Track Devices D. L. SLOTNICK Volume 11
Automatic Translation of Languages Since 1%0 A Linguist’s View HARRYH. JOSSELSON Classification, Relevance, and Information Retrieval D. M. JACKSON Approaches to the Machine Recognition of Conversational Speech KLAUSW.OTTEN Man-Machine Interaction Using Speech DAVIDR. HILL Balanced Magnetic Circuits for Logic and Memory Devices R. B. KIEBURTZ A N D E. E. NEWHALL Command and Control: Technology and Social Impact ANTHONY DEBONS Volume 12
Information Security in a Multi-User Computer Environment JAMESP. ANDERSON Managers, Deterministic Models, and Computers G. M . FERRERODIROCCAFERRERA Uses of the Computer in Music Composition and Research HARRYB. LINCOLN File Organization Techniques DAVIDC. ROBERTS Systems Programming Languages R. D. BERGERON. J. D. GANNON, D. P. SHECHTER, F. W. TOMPA.A N D A. V A N DAM Parametric and Nonparametric Recognition by Computer: An Application to Leukocyte Image Processing JUDITHM . S. PREWITT Volume 13
Programmed Control of Asynchronous Program Interrupts RICHARD L. WEXELBLAT Poetry Generation and Analysis JAMESJOYCE Mapping and Computers PATRICIA FULTON
CONTENTS OF PREVIOUS VOLUMES
307
Practical Natural Language Processing: The REL System as Prototype FREDERICK B. THOMPSONA N D BOZENAHENISZTHOMPSON Artificial Intelligence-The Past Decade B. CHANDRASEKARAN Volume 14
On the Structure of Feasible Computations J. HARTMANIS A N D J. SIMON A Look at Programming and Programming Systems T . E. CHEATHAM, JR., A N D J U D YA. TOWNELY Parsing of General Context-Free Languages SUSAN L. GRAHAM A N D MICHAEL A. HARRISON Statistical Processors W. J. POPPELBAUM lnformation Secure Systems I. BAUM DAVIDK. HSIAOA N D RICHARD Volume 15
Approaches to Automatic Programming ALANW. BIERMANN The Algorithm Selection Problem JOHNR. RICE Parallel Processing of Ordinary Programs DAVIDJ . KUCK The Computational Study of Language Acquisition LARRYH. REEKER The Wide World of Computer-Based Education DONALDBITZER Volume 16
3-D Computer Animation CHARLES A. CSURI Automatic Generation of Computer Programs NOAHS. PRYWES Perspectives i n Clinical Computing KEVINC . O’KANEA N D EDWARDA. HALUSKA The Design and Development of Resource-Sharing Services in Computer Communications Networks: A Survey SANDRA A. MAMRAK Privacy Protection in Information Systems REINT U R N Volume 17
Semantics and Quantification in Natural Language Question Answering W. A. WOODS Natural Language Information Formatting: The Automatic Conversion of Texts t o a Structured Data Base NAOMISAGER
305
CONTENTS OF PREVIOUS VOLUMES
Distributed Loop Computer Networks MINGT. LIU Magnetic Bubble Memory and Logic T I E NCHICHENA N D Hsu CHANG Computers and the Public's Right of Access to Government Information ALANF. WESTIN