IUP Computer Science Department Dr. Shubra CO 315 - Large File Organization and Access - 3 cr Spring 1997 I. Introduction This is the second computer science course of a three-course sequence that addresses itself to the critical area of data. CO 310 (Data Structures) sets the stage by dealing in detail with internal data structures. CO 315 will carry the discussion of data handling beyond core storage to discover the intricacies of data stored on external mediums. Of course, the characteristics of the external devices will be discussed, as well as the organization of the data on those devices. A significant portion of the course will be devoted to evaluation of existing access methods which provide the program with requested external data. Further, the course investigates interactive interfaces between the application system and the user. The limited interactive facilities of ANS Standard Cobol will be discussed followed by a presentation of object oriented Graphical User Interfaces. The study of sequential file algorithm patterns (primary read, control break and sequential file update) will be extended to study the effects of random access capabilities on algorithm patterns including random retrieval and interactive presentation of data, random file update and data validation. No story about data would be complete without an in-depth look at Data Base Management. The subject is introduced in the final weeks of the course so as to set the stage for CO 441 Data Base Management. CO 441 is then an in-depth study of the management of large integrated collection of shared data, i.e. the data base, using specialized software - DBMS. II. Course Objectives A. To solidify and extend your knowledge and practical skill in file processing. B. To apply your knowledge of internal data structures and extend this knowledge to external data structures necessary for file management. C. To examine how data storage technology works and how to measure and improve its efficiency. D. To study and apply advanced features of Cobol and system utilities. This study will include an introduction to alternative data models that are implemented in different languages or special-purpose data management software. E. To implement random file processing. We are somewhat hindered by the lack of a comprehensive text that presents the story of Large File Organization and Access. A compromise text was chosen. Loomis, M.E., Data Management and File Structures, Second Edition III. Course Organization WEEK TOPICS READINGS 1 Admin., Course Introduction Syllabus File Systems - Concepts, Structures L-10 and Software 2-4 Sequential File Organization - Access, Device Review Notes, Characteristics, COBOL I/O Verbs, L-11, L-12, Exception Handling, Blocking, Sort/Merge L-2 Utilities, Tables, Subprograms Programming Project 1 5 Record Structures and Arrays L-2, 3 6 Relative File Organization, Access, Device L-13 Characteristics, COBOL I/O Verbs, Exception Handling, Algorithms Exam 1 7 Tree Data Structures - Binary Trees L-8 Binary Search Trees, AVL Trees, B+ Trees L-14 8-9 Indexed Sequential File Organization - Access, L-15, 16 Cobol I/O Verbs, Algorithms, Exception Handling, VSAM, Multiple-key Files 10 VAX Indexed File Organization and VAX Utilities- FDL, ANALYZE, CONVERT, DUMP Programming Project 2 11 Interactive Interface using Hierarchy of Menus - Cobol Accept/Display Programming Project 3 Exam 2 12 Operating Systems and Files 13-14 Event Driven Programming Object Oriented Programming and Graphical User Interface Programming Project 4 IV. Approximate Grading Formula Exam 1 100 Exam 2 100 Final 100 Programming Projects 300 Concept Paper 25 Quizzes 10 (as needed) The above numbers will be used to compute a percentage score, with cut offs at 90%, 80%, 70%, 60%, or slightly less. I reserve the option to bend a few points at each cutoff. If your score is close to a cutoff, my main concern is your exam scores. If you fail to complete any of the programming projects, I may reduce your course grade one letter grade per missing project. You will be able to check your posted grade at any time by executing (i.e., running) ldir$grader:grade-check and following the machine's instructions. The grade file identifier will be "CO315". Any questions concerning points on projects, assignments, quizzes, or exams must be made in writing the day that the item is returned to you. I reserve the option to not accept late work. When I accept late work, I may take a long time to grade it. All accepted late work will be reduced in grade by a penalty factor; 10% for up to 1 day late, 30% for up to 2 days late, 50% for 3 or more days late. Do not hand me assignments at stray times or expect me to respond to discussions about your grade after class; put your concerns in writing. You will be required to take two exams during the regular term and a final. All exams are comprehensive, but you may expect that each exam will emphasize material covered since the last exam and questions that were missed on previous exams. I will use quizzes in whatever way I feel is helpful. V. Bibliography Loomis, Mary, Data Management and File Structures, Second Edition, 1989, Prentice-Hall. Notes: This is the textbook we have used for the last few years. It is very readable, but it is out of print. Miller, Nancy E. and Petersen, Charles G., File Structures with Ada, 1990, Benjamin Cummings. Notes: I generally agree with the authors' statements in the Preface. I also feel that this book is much more readable than Folk & Zoellick. There are things wrong with it as a choice for you in this course, but it is the best that I found. Philippakis, Andrew S., and Kazimer, Leonard J., Comprehensive Cobol, 1991,McGraw-Hill. Note: Some of you may want a textbook that covers advanced Cobol features. I chose to list this one because I like these authors. I get most of my facts about Cobol from on-line help and reference manuals. Samuels, Stephen M., Cobol, 1985, Prentice-Hall. Note: VAX Cobol has "extensions" to ANSI 85 Cobol and performance idiosyncrasies that you should be aware of, understand, and appreciate. Zoellick, Bill and Folk, Michael J., File Structures, Second Edition, 1992, Addison-Wesley. Notes: This text covers excellent topics, but it is difficult for students at your point in our curriculum to read. VI. Projects and Academic Conduct Programming projects constitute a very important source of learning in this course, and probably the biggest consumer of your study hours. Do the projects, and learn to work efficiently. Learn to use the editors and debug, and plan your work to avoid period of heavy computer usage. When you give or receive help, avoid going over the boundary of acceptable academic conduct into illegal copying or submitting the work of others as your own. If you use an idea or chunk of code that you know has been used somewhere else, attach a page to your hand-in stating the exact situation including dates, people and what part of your hand-in should be or might be attributed to a source other than your work for this class. Inspecting each other's code is good academic behavior; group coding efforts and submitting someone else's work as yours are bad academic conduct. Ask immediately if you have any concerns. Use e-mail for the quickest interaction with me. Computing technology presents unique opportunities for inappropriate academic conduct, including plagiarism and piracy. Because these behaviors are uniquely harmful to the goals of the course and the university, we must deal with them in ways that may seem uniquely harsh to you. If you are concerned about anything that happens in this course relative to possible charges of academic misconduct, contact me immediately and in writing. E-mail is well-suited to immediate contact that can be used as a formal record if there is a possibility that you may be accused or implicated in unethical use of computing of other forms of academic misconduct. Hand-ins. All papers handed in as part of CO 315 should be labeled as shown in the box below. That label must be visible when the project is handed in. Always strive for professional appearance: be neat, write well, spell correctly , CO 315-Section <#> Project <#> and staple non-programming hand-ins. A hand-in may consist of several separate documents, but all computer printouts must include a computer-supplied date and time. Fold green-bar hand-ins once, but do not burst or staple them.