COBOL Programming Exams


The COBOL modules that I have taught at the University of Limerick have been examined by requiring students to write a single COBOL program. On this page, a rationale for this type of exam is given, and to give readers an accurate view of what these exams are like, all the materials for the "Aromamora Oil File Maintenance and Report" exam are made available for download. Finally, in the hope that it might prove of interest, I have included the definition of plagiarism that I append to COBOL programming project specifications.


Most instructors would agree that the best (only?) way to learn to program is to practice writing programs. But instructors at any institution where students earn a merit based award are caught on the horns of a dilemma. On the one hand, the pressure of the assessment system and the demands of other courses are such that unless a significant percentage of the final grade is given for project work, students won't do the projects. On the other hand, whenever graded project work is given, some students will seek to gain an advantage over their fellows by plagiarism. If a significant portion of the final grade is given for project work, plagiarism can materially effect a student's final grade. So the problem that instructors have to solve is this - How can we give project work but ensure that it is not plagiarized or at least that no advantage is gained from plagiarism.

At the University of Limerick, the solution I have adopted is to give significant project work but also to give an exam based on the project work and to tie the final grade to performance in the exam. Students who do not achieve a required minimum in the exam have their project work ignored and are awarded the exam grade for the entire module. For instance, if a student receives an "F" in the exam then he receives "F" for the entire module no matter what grade was awarded for the programming project.

The COBOL exams are designed to ensure that students gain no advantage from plagiarizing their programming projects. In these exams, students are asked to write a single COBOL program. The specification for the program is usually a cut down version of the problem that students have already solved in the programming project.

Some readers may find the exam specifications a little difficult and be surprised that students could successfully complete the exam in two and a half hours. But the specification alone does not tell the full story. Students are already familiar with the problem because the exam is a cut down version of the programming project. Also, students really only have to code the Procedure Division because most of the Data Division entries are given to them in a program outline. In addition, the test data and the results produced by the program are given to students to help them to understand what is required by the specification. And a copy of the COBOL Metalanguage elements is provided so students don't have to remember the syntax of COBOL commands.

The "Aromamora Oil File Maintenance and Report" exam

All the documentsFor anyone interested I have gathered together all the documents from one exam (except the COBOL Metalanguage elements). These MS-Word documents may be downloaded by clicking on the links below.

The Exam Paper The exam paper containing the program specification

The Program Outline The program outline. Students are expected to write their final program on this outline. Note that most of the Data Division and Report Section entries have been given. Students are required to fill in any entries, such as edited pictures, that are not given.

The Input and Output files

A document showing the contents of the test data files and showing the results produced by running the program on these files. The file contents have been formatted to make them easy to read.

Trans.Dat - The contents of the transaction file

ODF.Dat - The contents of the indexed Oil-Details-File

OSF.Dat - The contents of the relative Oil-Stock-File

OilStock.Rpt - The Oil Stock Report produced by running the program on the data files above.

Error.Dat - The file containing any transactions which could not be applied to the Oil Stock File



Collaboration Guidelines

Students are often confused as to what constitutes plagiarism and what does not. Obviously it is plagiarism if a student takes a program written by another student an presents it as his own work. But when a class of students have the same programming project there is bound to be some discussion of the problem and of possible solutions to it. Does that discussion constitute plagiarism? Does developing a solution to the problem in a group constitute plagiarism? Is it plagiarism if a student encodes a solution that was developed by someone else? Is it plagiarism if a student takes a subprogram from someone else but develops the main program himself?

As a guide to students, the following statement is usually appended to COBOL programming project specifications.

It is plagiarism if you take any piece of program code written by another person and present it as your own work. While you may work with others to devise a solution to the problem you have been set, when the time comes to convert that solution into COBOL code, you must write your own actual program code. You may not share your program code, or any part of it, with any other person or use code written by another in your program.