INFSCI 0018: File Processing

Instructor: Marek J. Druzdzel


"A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of the computer scientists. Computer programs are good, they say, for particular purposes, but they aren't flexible. Neither is a violin, or a typewriter, until you learn how to use it."
Marvin Minsky, "Why Programming Is a Good Medium for Expressing Poorly-Understood and Sloppily Formulated Ideas"

The primary objective of this course is to teach you the essentials of file organization and file processing along with the basics of structured programming. These concepts are universal and fairly independent on the programming language used (although not every programming language implements all of them). Choice of COBOL is pragmatic - Information Science graduates have indicated that learning COBOL in the course of their studies turned out to be useful in their later endeavors. Even though most computer scientists will sneer on COBOL as being outdated and ugly (not without grounds), it is still widely used in business and banking world. For those of you who dislike the idea of learning COBOL, please keep in mind that most concepts that you will learn are fairly independent of the actual programming language used. Modern COBOL implementations include most constructs used in structured programming and the ugliness of COBOL will certainly not be in your way to learn how to program well. In my experience with teaching this class, those students who complained about COBOL happened to be those who would not be helped much by a "more beautiful" language. For those of you who like to learn COBOL, I hope you will have fun.

The intended participants are students who want to learn programming. If you have taken programming classes before and disliked them or if you simply feel aversion to programming and applied skills, you might want to consider dropping this class. If you stay, though, upon completion of the course, you should be able to apply the basic techniques of structured programming design; recognize and identify the basic procedures, devices, and purposes of data processing; design, code, test, and document COBOL programs of average complexity; and use and understand simple VMS commands. Another useful experience that this course will provide you with is group work, something that is a fact of life in most environments that you will be immersed in after graduation.

Most of your effort in this class will be concentrated on programming assignments. If you have never programmed a computer before, these assignments will make your work load heavy, but I still believe that you will find the class satisfying. In fact, most successful students in the past were not those who came into the class with previous programming experience, but those who worked hard. I will require your commitment, keeping up with the readings and the assignments, coming to classes, and being their active participant. In return, I will do my best to ensure that you have fun and learn useful skills.

Marek Druzdzel's teaching page
Marek Druzdzel's home page / Last update: 13 May 2005