page 1.1

BIS 1753 -- Business Programming Using COBOL

Fall 2009

Class Time:1:00 -3:00 PM

Location:McCool 212

Instructor:Dr. Kent Marett

email:

Web site:

(Go to your instructor's faculty profile page, then scroll down to the Courses Taught section.)

Course Description:

This course serves as an introduction to procedural programming, using the COBOL language. The main focus of the course is on procedural programming and general programming concepts. The specific language used is secondary. Your main goal in this course is to develop the ability to write a computer program. You will gain experience in understanding problems; you will learn something about business information systems; you will develop your logic abilities; and along the way, you will learn about the syntax of COBOL – but learning the syntax of a specific language is really a secondary goal when compared to the others listed.

Despite what you may have heard elsewhere, COBOL (Common Business Oriented Language) remains alive and very well. COBOL programmers remain in high demand in the realms of business programming, some earning well over $100,000 per year. After U.S. companies spent billions of dollars updating existing COBOL code in response to the "Y2K problem", they are surely not going to abandon those systems -- the demand for COBOL programmers will certainly remain high for many years to come.

COBOL itself has undergone numerous changes over its life; some of these changes, such as the ability to use color on your screen output, may even make your programming somewhat enjoyable. There are many new and current versions of mainframe and microcomputer COBOL. New versions of COBOL might be object-oriented, might have extended database capabilities, or might be designed for web-based programming. COBOL has not, as some people think, remained stagnant over the years.

This course, as you might imagine, involves a lot of programming. Plan to spend some time in front of a computer. Completion of your programming assignments is crucial to your success in achieving the goals of this course. There is really only one way to become a computer programmer, and that is to write computer programs! Practice, practice, practice...

Prerequisites:

You must have made a B or higher in both BIS 1013 and BIS 1733 before you take this course. You must have completed these prerequisite requirements prior to taking this course.

This course assumes that you already know how to at least begin analyzing a problem, designing a solution, implementing the design, and testing the solution. It assumes that you know how to write and debug a simple computer program.

Study Materials:

Course Packet: Packet of programs for in-class discussion; the packet also includes all programming assignments for the semester, copies of exams from a previous semester, and additional information about selected COBOL statements. Each student must have a copy of this packet. You absolutely must bring it to class each day, as it will be the focus of each day's in-class discussion. Available at Copy Cow (320-4000).

Textbook:

Stern and Stern, COBOL for the 21st Century, 10th edition. ISBN 0-471-07321-0

We use our textbook primarily for reference purposes in this class. You can probably share a copy of the textbook with another student.

Hardware and Software Requirements:

We will be using several different software packages during the semester. All software used in the course is available, free of charge, on our course web site. In Assignment #2, you will install some of that software onto your computer. The software is also available on the computers in the COBI Lab.

You need a flash drive for working in the lab, and for your programming exams.

Grading:

The following table shows the allocation of the weights that will be assigned in calculating the final grade.

Homework/Quizzes20%

Exam #120%

Exam #220%

Written exam #320%

Programming exam #320%

You might want to use a spreadsheet to keep track of your grades. Your spreadsheet would look something like:

Item / my grade / weight / grade * weight
Homework/Quizzes / 100 / .20 / 20.0
Exam #1 / 84 / .20 / 16.8
Exam #2 / 90 / .20 / 18.0
Written Exam #3 / 92 / .20 / 18.4
Programming exam #3 / 94 / .20 / 18.4
Final average / 91.6

If you ever have a question about a grade, you need to raise that question within seven calendar days of when the grade is posted in the Online Gradebook System (described later in this document). After a grade has been posted for seven days, the grade will not be changed.

Letter Grades:

Your final average will be calculated to one decimal place, with standard rounding, and final letter grades will be calculated on a 10-point scale. This means that 89.94 will round to 89.9, which is a B, and 89.95 will round to 90.0, which is an A.

Your grades will be based on your performance on the various components described elsewhere in this document. Your grade will not be changed for extraneous reasons, such as "if I don't make a B, my dog will dis-own me" or "I HAVE to have a C in this course because I've already made too many D's". If you need a particular grade, be sure to work hard enough to earn the grade; when you do that, you WILL get the grade.

Grading procedures:

You are not competing against other students for grades. Your grade will be based on your work, and the points that you earn. If everyone has a 90+ average, everyone will receive an A.

In grading programs (both assignments and programming exams), virtually all points will be based on whether a feature works or does not work. Very rarely will you receive points for effort, or for something "almost working". Having a few components working correctly is much better (and will actually earn you some points) than having no components working (which will earn you no points).

Preparation for class:

You are responsible for being prepared for each class meeting. The Course Outline shows the subject for each class meeting. If the day's schedule shows a program that we will go over, you should review the program prior to class to see what it does.

Class Attendance:

Class is important. Attendance will be checked at each class meeting. It would be good to develop the habit of getting to class on time (this will help you prepare for upcoming jobs in the workplace).

The table below shows your attendance bonus points added to your final average for various numbers of absences.

Total absences / Bonus points
0 / 2
1 / 1
2 or more / 0

If you are more than ten minutes late to a class meeting, you will be counted as absent. You should still come to class, but you will be counted absent officially.

Class Participation:

You are encouraged to participate in class! Employers sometimes say that communication skills are a problem area for some of our graduates. I encourage you to work on your communication skills in this class.

Classroom Etiquette:

Please get to class on time, and remain seated, reasonably quiet, and attentive throughout class if possible. If you have a pager or cell phone, please turn it off while you are in class to avoid disruptions.

Homework:

Completion of programming assignments is required. Assignments will not be accepted late. Each assignment is due at the beginning of class on the date specified in the course outline. Don’t procrastinate and end up at a computer trying to debug your program, or even trying to print your output, at the last minute. Programs are due at the beginning of class. Be early!

Most of your learning in this class will probably come from the hours that you spend working on the homework programming assignments. It is absolutely essential that you do your best to complete and learn from these assignments.

You will learn that debugging computer programs is at least as hard as writing them (if debugging is the act of getting errors out of a program, then what is the name of the process of getting errors into a program? programming!). You need to develop the ability to read error messages and understand them. You need to develop the ability to solve problems, both in the design of your program and in the debugging process.

Many of the finest and most rewarding things in life require a sacrifice on your part. Learning to program may be one of them. But for many people, the eventual reward is great!

Exams:

You need to take your exams as scheduled. If you need to miss an exam, you need to let your instructor know ahead of time, if at all possible. Either call and leave voice mail, or send e-mail.

The exams are scheduled on the course outline. Plan ahead. If you have any type of exam conflict, you need to let your instructor know at least two weeks ahead of time.

Programming Exams:

All exams will be comprehensive. Written exams will be closed book, online multiple choice exams. For programming exams, you will be able to use your textbook, your course packet, and your old programs. You will not be allowed to use any other aids during the programming exams.

Registering for misweb.cbi.msstate.edu:

This class uses the "misweb system" for course management. Your first step in using misweb is to "register" for the system. To do this, go to:

Enter your Banner net id, such as abc123, and your Banner net password. Click on the Log in button. If you have already registered for misweb, you will go straight to your Edit Routine. If you have not previously registered for misweb, you will go to a short form which will allow you to register. Complete and submit the form.

The misweb system gives you a password-protected account that you can use to publish an online student profile page that is accessed through the COBI web site. You need to publish a good page as part of that site, if only to provide your instructor with information about your background. This system is intended to help you provide valuable information to instructors, fellow students, employers, and anyone else who visits COBI’s web site.

Course Web Site:

We have both a Public Course Web Site and a Private Course Web Site. The Public site includes items that we make available to the entire world. The Private site includes everything that is on the Public site, plus links to items that are restricted to students in our class. In general, you will want to access the Private site. To access the Private Course Web Site, check your grades in the Online Gradebook System.

1.Go to

2.Go to your teacher's faculty profile page

3.Scroll down to the Courses Taught section

4.Click on any link to Online Grades.

5.Select your class from the list of online gradebooks, enter your net id and your net password, and click on the Continue button..

6.Once you log in, you will see a page which contains various buttons, for various course technology components, including your online grades, the private course web site, and more..

Class Communications:

One item that you will maintain as part of your misweb page is your desired email address. Class email will be sent to whatever address you have recorded on your misweb student profile page. Be sure to have your correct email address in your misweb page.

Archived EMail:

Many messages that are sent to the class will be saved in a Class EMail Archive. You can read your class's archived messages any time that you check your grades in the Online Gradebook System (when you look at your grades, you will see a button to click for the Class EMail Archive).

Academic Integrity:

Mississippi State University has an approved Honor Code that applies to all students. The code is as follows:

"As a Mississippi State University student I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do."

Upon accepting admission to Mississippi State University, a student immediately assumes a commitment to uphold the Honor Code, to accept responsibility for learning, and to follow the philosophy and rules of the Honor Code. Students will be required to state their commitment on examinations, research papers, and other academic work. Ignorance of the rules does not exclude any member of the MSU community from the requirements or the processes of the Honor Code. For additional information please visit:

You are expected to maintain the highest levels of academic integrity in this class. All work that you submit must be your own, original work, done specifically for this class, this semester. That means that you should not copy anyone else's work, you should not use work that you did for another class, you should not use work that you did for this course during a previous attempt in the course, etc. If you ever have any question as to whether something is acceptable or not, please ask your instructor!

Our programming assignments are NOT group assignments. You may talk with other students about your program, you may even let another student look at your program to help you with your program, but you may not look at anyone else’s program for the purpose of using their code as your own. You should never look at another student’s code without that student’s explicit permission.

Any academic misconduct will be handled in the manner prescribed in the university regulations. The most likely penalty for any academic misconduct will be an F in the course.

Unconditional Guarantee:

If you attend every class during the semester, pay attention in class, and complete each programming assignment, we guarantee that you will become a better programmer. If you fulfill your obligations as herein stated and do not feel that you have become a better programmer by the end of the semester, you may sit in on this class again in the future, as many times as you choose, absolutely free.

7/6Introduction to Structured Program Design in COBOL.

Text:Chapter 1.

Glossary:Compiler, Compile Time, Execution Time, Interpreter, Source Code, Source File, Object Code, Object File

Topics: Symbolic languages

Compilers and interpreters

Interactive -vs- batch programming

Program design, debugging, documentation

COBOL, Structured Programming

Due 7/7Assignment #1: misweb

------

7/7Meet in McCool 233. Linux and mislab use.

The Identification and Environment Divisions.

Text:Chapter 2.

Packet:intro1.cbl, intro2.cbl, error1.cbl

Glossary:Syntax, Syntax Error, Severity Level

Topics:Syntax, Symbology

COBOL's column layout

Divisions, Sections, Paragraphs, Sentences

Beginning debugging

Due 7/7 @ 11:59 PMAssignment #2: mislab account

------

7/8Bring your Syntax Guide to class. The Data Division.

Text:Chapter 3.

Packet:data1.cbl

Glossary:Data Item, Pic Clause, Data Type, Literal, The Move Statement

Topics:Data items: level number, data item name, pic clause, size, data type, value

Introduction to mislab and COBOL programming.

Packet:Study Assignment #3.

Glossary:Runtime Environment

Topics: Using mislab: telnet, ftp, Linux

Editing, compiling, and executing COBOL

Due 7/8 @ 11:59 PMAssignment #3: Hello world

7/9 Coding a Complete COBOL Program: The Procedure Division.

Text:Chapter 4.

Packet:gpa1.cbl

Topics:Data Item manipulation: Move, Display, Compute

Modular Programming: Perform

------

7/12Coding a Complete COBOL Program: The Procedure Division.

Packet:gpa2.cbl

Topics:Data Item manipulation: Move, Display, Compute

Modular Programming: Perform

The Procedure Division. Iteration: Beyond the Basic Perform.

Text:Chapter 9.

Packet:gpa3.cbl

Glossary:Initialization, Dynamic Initialization, Value Clause, Static Initialization, Programming Constructs, Execution Error, Logic Error

Topics:Looping: Perform Until

Due 7/12 @ 11:59 PMAssignment #4: Interactive Gas Mileage Calculator

7/13Decision Making Using the If and Evaluate Statements.

Text:Chapter 8.

Packet:gpa4.cbl

Glossary:Conditional Statement, Imperative Statement, Scope Terminator

Topics:Selection statements; relational expressions

Due 7/13 @ 11:59 PMAssignment #5: Improved Interactive Gas Mileage Calculator

------

7/14Moving Data, Printing Information, and Displaying Output.

Iteration: Beyond the Basic Perform.

Text:Chapters 6, 9.

Packet:ne-pics.cbl

Topics:Move statement, data types, rules; editing data items

Moving Data, Printing Information, and Displaying Output.

Iteration: Beyond the Basic Perform.

Packet:counters.cbl

Topics:Move statement, data types, rules; editing data items

Looping

Counters and Accumulators

7/15Exam #1 (Written/Programming Exam, in McCool 233)

7/16Computing in COBOL: The Arithmetic Verbs and Intrinsic Functions.

Text:Chapter 7.

Topics:Statements

Order of evaluation

Optional clauses: Rounded, On Size Error, Remainder

Intrinsic Functions (not supported by RMCOBOL)

Due 7/16 @ 11:59 PMAssignment #6: Fahrenheit/Centigrade Temperature Converter

------

7/19Designing and Debugging Batch and Interactive COBOL Programs.

Text:Chapter 5.

Packet:gpa5.cbl

Topics:Interactive Input/Output: Accept, Display

Logical Flow Control Structures

Errors, Debugging

Writing output to a file

Glossary:Associated Record Description, Internal File Name, External File Name, File Binding, Static File Binding, Organization is Clause

Due 7/19 @ 11:59 PMAssignment #7: Loan Amortizer

7/20Processing sequential files.

Text:Chapter 4.

Packet:invent1.cbl

Glossary:Unit of Access

Topics:File, Record, Field Manipulation