SYLLABUS FOR COBOL
PROGRAMMING I
Term: Fall, 2003
(031) September 2 December 12, 2003
Course Number: CIS
320
Instructor: Br. Jim Ballmann C.PP.S.
Office Phone: 219-473-4365
E-mail: jballmann@ccsj.edu
Office Hours: Monday Friday
8:00 a.m 4:00 p.m.
Instructor Background:
1969 Professed as a Brother for the
Missionaries of the Precious Blood
1972 BA in Philosophy, St. Josephs College
1988 BS in Computer Information Systems, Calumet
College of St. Joseph
1994 MS in Education, Purdue University Calumet
Course Time: Thursday 7:00 p.m. - 10:00 p.m.
Class lecture is scheduled from 7:00 to 9:00 and class lab from 9:00 to 10:00. The class lecture may extend beyond 9:00, until the topic for the class is covered. The class lab is time for the student to work on programming assignments. The instructor will be available in the lab during the class lab. Since the COBOL editor/compiler was purchased with the textbook, the student may elect to work on programming assignments on his/her personal computer.
This
course provides the student with an in-depth study of computer theory and
structured programming with respect to business applications. It will cover COBOL language syntax, data
and file structures, report generation, control break logic, table processing,
and sequential file creation and updating.
CIS
125, 255
Laboratory
Fee: See current fee schedule.
Learning
Outcomes/Competencies:
Students in this course will:
·
Edit,
compile, & run COBOL programs using Micro
Focus Net Express
·
Convert
flowchart & pseudocode into COBOL syntax
·
Design
reports using a form
·
Code
input data files & output report files in the DATA DIVISION
·
Design
& code COBOL programs using a structured, top-down modular approach
·
Process
an input data file & produce an output report
·
Code
a program to produce a report using control break logic
·
Set
up & access a single-level table
Textbooks:
Structured COBOL Programming, Stern, Stern, & Ley (10th Edition)
The following are bundled with the textbook:
Micro Focus Net Express 3.0 Compiler & Manual
Getting Started With Micro Focus Net Express 3.0 University Edition
Learning Strategies: Class interaction,
Projects, Collaborative Learning, Lecturing
Assessment:
Exams
(Midterm, Final) 70
% of grade
Programming
assignments 30 % of grade
Programming Assignments 30% 150 points
Exam #1 10%
50 points
Exam #2 10%
50 points
Final Exam 50% 250 points
---------------------------------------------------------------------------
Total 100% 500 points
Grading Scale:
A = 96 - 100% 480 - 500 points
A- = 92 - 95% 460 - 479 points
B+ = 89 - 91% 445 - 459 points
B = 86 - 88% 430 - 444 points
B- = 83 - 85% 415 - 429 points
C+ = 80 - 82% 400 - 414 points
C = 77 - 79% 385 - 399 points
C- = 74 - 76% 370 - 384 points
D+ = 71 - 73% 355 - 369 points
D = 68 - 70% 340 - 354 points
D- = 65 - 67% 325 - 339 points
F = 00 - 64% 000 - 324 points
Class Policy on Attendance:
Attendance is part of the
class. Missing several classes will make it difficult for the student to
comprehend the material and complete the necessary assignments and exams.
Class Policy on Electronic
Devices: (Cell phones, Beepers, Pagers)
Please
turn off electronic devices during class.
If you receive an emergency call, leave the classroom to answer the
call.
Course Outline:
#1 Sept 4 Chapter 1: Introduction to Structured Program Design in COBOL
Chapter 2: Identification & Environment
Divisions
Read pages 2 36
Read
pages 40 - 58
#2 Sept 11 Chapter 3: Data Division
Written
Assignment #1 due
Read pages 62
- 98
#3 Sept 18 Chapter 4: Coding Complete COBOL Programs: Procedure Division
Chapter 5: Designing & Debugging Batch
& Interactive COBOL Programs
Written
Assignment #2 due
Read
pages 103 128
Read
pages 138 - 178
#4 Sept 25 EXAM #1
Written
Assignment #3 due
Programming
Assignment #1 due
#5 Oct 2 Chapter 6: Moving Data,
Printing Information, & Displaying Output Interactively
Read
pages 183 - 220
#6 Oct 9 Chapter 7: Computing in
COBOL: Arithmetic Verbs & Intrinsic Functions
Written
Assignment #4 due
Read
pages 258 - 294
#7 Oct 16 Chapter 8: Decision Making Using IF & EVALUATE Statements
Written
Assignment #5 due
Read
pages 300 333
Programming
Assignment #2 due
#8 Oct 23 Chapter 9: Iteration: Beyond The Basic PERFORM
Written
Assignment #6 due
Read
pages 341 - 372
#9 Oct 30 EXAM #2
Written
Assignment #7 due
Programming
Assignment #3 due
#10 Nov 6 Chapter 10: Control Break Processing
Read pages 382
425
#11 Nov 13 Chapter 11: Data Validation
Written
Assignment #8 due
Read
pages 431 462
Programming
Assignment #4 due
#12 Nov 20 Chapter 12: Array Processing & Table Handling
Written
Assignment #9 due
Read
pages 467 - 511
#13 Dec 4 Review
Written
Assignment #10 due
Programming
Assignment #5 due
#14 Dec 11 FINAL
EXAM
Programming Assignment #6 due
Class Participation: The class is primarily lecture with some
discussion. Read the material to be
covered during the class so that you will be able to participate in the class.
Written Assignments:
Written assignments will be assigned for each class. Written assignments should be completed to help review the material and prepare for programs and exams. They will not be collected.
#1 Page
36: True-False Questions, 1 10
Page
36: General Questions, 1 10
Page 58: True-False
Questions, 1 12
Page 58: General Questions,
1 10
#2 Page
99: True-False Questions, 1 10
Page
99: General Questions, 1 9
Page
100: Debugging Exercises, 1 2
#3 Page
128: True-False Questions, 1 10
Page
128: General Questions, 1 10
Page
129: Interpreting Instruction Formats, 1 10
Page
178: Fill in the Blanks, 1 10
Page
179: General Questions, 1 3
#4 Page
252: True-False Questions, 1 10
Page
252: General Questions, 1 25
Page
253: Interpreting Instruction Formats, 1 3
Page
254: Debugging Exercises, 1 4
#5 Page
295: True-False Questions, 1 10
Page
295: General Questions, 1 25
Page
296: Debugging Exercises, 1- 4
#6 Page
333: True-False Questions, 1 10
Page
333: General Questions, 1 20
Page
335: Debugging Exercises, 1 3
#7 Page
373: True-False Questions, 1 10
Page
373: General Questions, 1 7
Page
373: Debugging Exercises, 1 2
#8 Page
425: True-False Questions, 1 15
Page
426: General Questions, 1 5
Page
426: Debugging Exercises, 1 5
#9 Page
462: True-False Questions, 1 10
Page
463: General Questions, 1 5
Page
463: Debugging Exercises, 1 4
#10 Page
544: True-False Questions, 1 7, 10, 12
Page 545: General Questions, 1 3, 8 12
Page
546: Debugging Exercises, 1 2
Programming Assignments:
Programming assignments are
composed of several parts that are listed below. All parts are to be submitted
on paper. Programming assignments are worth 25 points each. If a programming assignment is submitted
late, 5 points will be deducted. Full
points will be given if all parts of the assignment are included, the program
is well designed, and runs properly.
Assignment #1
Programming source code
Report
Assignment #2
Pseudocode used to design
the logic for the program
Printer spacing chart for
report
Programming source code
Report
Assignment #3
Pseudocode used to design
the logic for the program
Printer spacing chart for
report
Programming source code
Report
Assignment #4
Pseudocode used to design
the logic for the program
Programming source code
Run this program
interactively to demonstrate input & output to instructor
Assignment #5
Pseudocode used to design
the logic for the program
Printer spacing chart for
report
Programming source code
Report
Assignment #6
Pseudocode used to design
the logic for the program
Programming source code
Run this program interactively
to demonstrate input & output to instructor
Calumet Video sells and
rents videos. When they make a
transaction, Calumet Video collects the information listed in the following
table. It is stored in an ASCII data
file, customer.dat. To run the business they need several
reports and other information, some from the data file and some entered from
the keyboard. In this class you will
write programs to process the information that they need to run the company.
Field |
Size |
Type of Data |
Location in Record |
|
Id |
3 |
Alphanumeric |
01 - 03 |
|
Name |
15 |
Alphanumeric |
04 - 18 |
|
Address |
15 |
Alphanumeric |
19 - 33 |
|
City |
10 |
Alphanumeric |
34 - 43 |
|
State |
2 |
Alphanumeric |
44 - 45 |
|
Zip |
5 |
Numeric |
46 - 50 |
|
Type |
2 |
Alphanumeric |
51 - 52 |
|
|
|
CO = Comedy |
|
|
|
|
MY = Mystery |
|
|
|
|
RO = Romance |
|
|
|
|
SF = Science Fiction |
|
|
|
|
WE = Western |
|
|
Video |
15 |
Alphanumeric |
53 - 67 |
|
Transaction |
1 |
Numeric |
68 - 68 |
|
|
|
0 = Rent |
|
|
|
|
1 = Buy |
|
|
Date |
8 |
Numeric |
69 - 76 |
|
Amount |
4 |
Numeric, 2
decimal places |
77 - 80 |
#1 Calumet Video wants to know what videos and how many were rented or sold in the year 2000. I have written a program to produce the report that the company needs. The report is written for 80-column paper. This program is called asgn01.cbl.
·
Key
in program
·
Asterisks
(*) begin in column #7
·
Compile
and run the program
·
Report
is asgn01.rpt
#2 Calumet Video wants to send two mailings to customers who purchased or rented videos this past year. Write a program to print two labels for each customer. Calumet Video uses one-up labels, so the two labels for each customer will be one after the other. Labels are 40-columns wide.
·
Four
lines per label with id on line #1, name on line #2, address on line #3, and
city, state, and zip on line #4
·
Put
a blank line between labels
·
Set
up four records in the file section under the FD for report lines
·
There
is one record for each of the four label lines listed above
#3 Calumet Video plans to increase the price of videos by a percentage this next year. They want to compare old prices with new prices. Write a program to produce a report to list one line for each record read (which contains an amount). The report should be written for 80-column paper.
·
Design
the report
·
Decide
on the percentage increase and include it in the header line(s)
·
Header
line(s) must contain the report name, report date, page number, percentage
increase, and column headings
·
Detail
line for each record read must contain movie, transaction, date, old amount,
and new amount
·
Print
header line(s) on the top of each page
·
Use
the following logic for the transaction field:
IF cust-transaction
= 0
MOVE Rent TO rpt-transaction
ELSE
MOVE
Buy TO rpt-transaction
END-IF
#4 Calumet Video wants to stock the types of video that customers are interested in. Write an interactive program to develop a survey to accept the following data items from the keyboard: id, sex of respondent, and type of video (valid types are one of the five that are listed in TYPE in the customer data file).
·
There
is no input file
·
Use
only one file
·
Open
the file output
·
The
output record contains the three fields that are accepted from the keyboard
·
There
is no report
·
Set
up six counters in WORKING-STORAGE with a PIC 999 clause
·
One
counter is for total records entered and five counters for each of the TYPEs
(CO, MY, RO, SF, WE)
·
Use
three sets of DISPLAY & ACCEPT statements to prompt for the fields of data
and accept them from the keyboard, then write them to the record
·
After
writing the record, add 1 to the total count, and if conditions are met, add 1
to the appropriate type counter
·
Then
use DISPLAY & ACCEPT to see if another record is to be added
·
After
all the records have been entered, display on the screen the percentage of
responses for each of the five types
·
Use
the following formula for computing percentages:
COMPUTE identifier = counter / total-record-counter
* 100
·
Use
an identifier in WORKING-STORAGE with a PIC ZZ9.99 clause to display the
percentages
#5 Calumet Video needs a report to list rentals and sales by city. Write a program to produce a report to list total sales and total rentals by city. The report should be written for 80-column paper.
·
Customer
file is in order by city
·
Use
control-break processing
·
Include
a header with date, report name, and page number
·
On
the summary line list the city and the number of videos rented and sold
#6 Calumet Video wants to survey customers to list five cities for potential expansion. Write an interactive program using PERFORM VARYING logic to accept five cities and store them in an array.
·
Clear
the screen
Add to DATA
DIVISION:
SCREEN SECTION.
01 SCREEN-1.
05 BLANK SCREEN.
Add to PROCEDURE
DIVISION:
DISPLAY SCREEN-1.
·
Display
the cities on the screen, one per line, using PERFORM
VARYING logic
·
Display
three blank lines
·
Display
on the screen the city stored in location #3
Center for Academic
Excellence:
Tutoring assistance is free to all students of Calumet College of St. Joseph. Call the Center for Academic Excellence (CAE), to make an appointment at 473-4287. The Center has experienced and well-trained tutors in most subject areas to help students who are struggling in a course or who are doing well and would like to do better. Regular weekly tutoring sessions are likely to improve your grade