More elegant languages, more powerful languages, and more software-correct languages exist, but COBOL remains the workhorse language for business data processing applications. It is therefore an important part of the language preparation for business programmers. This text is suitable for students with little or no training in software development or in other languages.
The book is divided into five parts. The first part introduces the structure of the language, the second part explains software engineering principles and methods and relates them to COBOL, the third section describes COBOL data structures, the fourth section is devoted to file processing, and the fifth part consists of one chapter on COBOL and database systems. The book includes typical appendices on reserved words and syntax, plus one on the report writer and another on flowcharting. The text may contain more than can be covered in one course; therefore, it is also available in two volumes (volume 1 has chapters 1-12, which include the first three parts plus some file processing, and volume 2 has chapters 13 to 18).
The length of the text is explained in part by extensive file processing coverage and in part by pedagogical features such as chapter objectives, key terms, and review materials (chapter summaries, questions with answers, essay questions, and exercises and problems). It also contains 29 complete programs listed with files and outputs.
The explanations are oriented to a mainframe computer. Uckan does not discuss microcomputer COBOL. The development of COBOL, the ongoing role of the CODASYL Committee, and the process by which changes are made are mentioned only briefly. The text does clearly note the features that were added in the latest ANSI 1985 standard (over the prior 1974 version), however. This information is useful because the features added in 1985 support structured programming concepts. Examples show how blocks were coded in 1974 COBOL and how they can be coded with 1985 features. Explaining the two versions may complicate the pedagogy, but it does allow students to understand why older programs are coded the way they are.
Software engineering principles are introduced. The second section has chapters on program design principles, structured techniques, program testing, and modular programming. The explanations are short and cover all terms and methodologies currently used in software engineering. The student is therefore introduced to a broad range of concepts and methods. The depth of coverage is necessarily limited.
The major section, comprising half of the book, covers file processing methods. It is extensive, covering sequential, indexed sequential, relative, and logical (linear and nonlinear) file organizations. An additional chapter covers merging and sorting.
A major advantage of this textbook is that it is comprehensive and covers or at least introduces a large number of topics. An instructor who likes comprehensiveness will like the coverage. The disadvantage of the coverage is that it is not selective. An instructor who expects the textbook to cover only the most important features may find it too comprehensive.