Prerequisites
This book is not a first introduction to COBOL. It assumes that you have already learned the fundamentals of the language and are ready to build on that foundation. Below is an honest accounting of what you need to bring to this book, what is helpful but not strictly required, and what you do not need.
What You Need
Completion of an Introductory COBOL Course
The single most important prerequisite for this book is prior COBOL experience at the introductory level. Specifically, you should have completed a course or self-study program equivalent to Learning COBOL Programming (TechLegacy Press, 2026) or any comparable introductory COBOL textbook. You should be comfortable with the following before you begin Chapter 1:
-
The four-division program structure. You know that a COBOL program is organized into the IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, and PROCEDURE DIVISION. You understand the purpose of each division and can write a complete program that includes all four.
-
Data definition with PICTURE clauses. You can define numeric, alphanumeric, and alphabetic data items using PIC. You understand the difference between PIC 9, PIC X, and PIC A. You can define items with implied decimal points (PIC 9(5)V99) and signed fields (PIC S9(7)). You have at least a basic familiarity with USAGE clauses (DISPLAY, COMP, COMP-3).
-
WORKING-STORAGE and level numbers. You understand group items and elementary items, level numbers 01 through 49, and the concept of hierarchical data structures. You have used the VALUE clause for initialization.
-
Basic control flow. You can write IF/ELSE statements with END-IF scope terminators. You have used the PERFORM verb for iteration, including PERFORM UNTIL and PERFORM VARYING. You have at least encountered the EVALUATE statement.
-
Basic file processing. You have written programs that OPEN, READ, WRITE, and CLOSE sequential files. You understand the concept of end-of-file detection and have used the AT END phrase or FILE STATUS checking.
-
Arithmetic operations. You can use ADD, SUBTRACT, MULTIPLY, DIVIDE, and COMPUTE to perform calculations. You understand the GIVING clause and the ROUNDED phrase.
If you have completed Learning COBOL Programming through at least Part IV (Modular Programming), you are well prepared for this book. If you have completed the entire book, including the enterprise and financial chapters, you are exceptionally well prepared.
If you have not taken a formal introductory course but have equivalent experience -- perhaps from on-the-job training or self-study with IBM documentation -- review the self-assessment checklist below to confirm your readiness.
General Programming Competence
Beyond COBOL-specific knowledge, you should be a competent programmer in general. The concepts covered in this book -- modular design, defensive programming, database interaction, transaction processing, performance tuning -- assume that you understand programming at a level beyond the introductory. You should be comfortable with:
- Writing programs that span hundreds of lines
- Debugging programs by reading error messages, examining data, and tracing logic
- Understanding the concept of a call stack and how programs invoke other programs
- Working with structured data (records, arrays, hierarchical data)
- Reading and writing files programmatically
Comfort with the Command Line
You should be able to use a terminal or command prompt to compile and run programs, navigate directories, and interpret compiler output. This book's exercises require compiling COBOL programs from the command line, and you should be comfortable with that workflow before you begin.
A Computer with GnuCOBOL Installed
You need a working GnuCOBOL installation on your computer. If you completed Learning COBOL Programming, your environment is already set up. If not, installation instructions are provided in Chapter 2 of this book, which covers development environment setup. GnuCOBOL is free, open-source, and runs on Windows, macOS, and Linux.
What Is Helpful but Not Required
Familiarity with JCL (Job Control Language). Several chapters reference JCL for job submission and dataset management. If you have JCL experience, those sections will feel comfortable. If you do not, the text explains JCL concepts as they arise, and you can complete the exercises using GnuCOBOL without JCL.
Experience with SQL and relational databases. Part VI covers embedded SQL with DB2. Prior SQL experience will accelerate your progress through those chapters, but the text introduces SQL concepts from a COBOL perspective and does not assume prior database coursework.
Mainframe experience. If you have worked with z/OS, TSO/ISPF, or other mainframe technologies, you will have a head start on the chapters covering the mainframe environment. If you have not, those chapters are written to be accessible to readers encountering the mainframe for the first time.
Experience with another programming language. If you know Java, Python, C, or another language in addition to COBOL, you will find it easier to understand concepts like object-oriented programming (Chapter 25) and inter-language communication (Chapter 26). But the book does not assume knowledge of any specific non-COBOL language.
What You Do NOT Need
You do not need production COBOL experience. This book is designed to bridge the gap between introductory learning and production readiness. If you already had production experience, you would not need this book.
You do not need mainframe access. The majority of exercises can be completed using GnuCOBOL on your personal computer. For chapters on CICS, DB2, and IMS, the IBM Z Xplore program provides free remote access to a z/OS environment, and the text provides guidance for both platforms.
You do not need any paid software. GnuCOBOL is free. IBM Z Xplore is free. The text editors and tools you need are free. You can complete this entire book without purchasing any software.
You do not need a background in finance, insurance, or government. The running examples draw from these domains, but all business concepts are explained in context. You do not need to know what a general ledger is or how claims adjudication works before reading the chapters that teach you.
Self-Assessment Checklist
Before beginning Chapter 1, review the following questions. You should be able to answer at least eight of the ten with confidence. If fewer than eight feel familiar, consider reviewing Learning COBOL Programming or an equivalent introductory resource before proceeding.
-
What are the four divisions of a COBOL program, and what is the purpose of each?
-
Write the DATA DIVISION entry for a record that contains an employee name (30 characters), a department code (4 characters), and a salary (7 digits with 2 decimal places, signed).
-
What is the difference between PIC 9(5) COMP and PIC 9(5) COMP-3? When would you use each?
-
Write a PERFORM UNTIL loop that reads records from a sequential file until end-of-file, displaying each record's key field.
-
What is a scope terminator? Name three scope terminators and explain why they are important.
-
What does the FILE STATUS field tell you, and why should you check it after every file operation?
-
Explain the difference between a group item and an elementary item. Give an example of each.
-
What is the difference between PERFORM THRU and in-line PERFORM? Which is generally preferred in modern COBOL and why?
-
Write a COMPUTE statement that calculates compound interest: principal times (1 plus rate) raised to the power of periods.
-
What happens if you attempt to perform arithmetic on a field that contains non-numeric data? How can you prevent this?
If these questions feel comfortable, you are ready to begin. Welcome to intermediate COBOL.