CSI 2131 WINTER 2003 course description

CSI 2131. FILE MANAGEMENT (3 hours of lecture per week, 1.5 hours of lab per week, 3 credits). Characteristics of computer files and mass storage media. Operations on files. File organization and access methods: sequential, indexed-sequential, direct, extendible hashing, B-trees. Design of file management systems. Includes exercises in fourth-generation languages.
Prerequisite: CSI 2114

WEB PAGE: http://www.site.uottawa.ca/~lucia/courses/2131-03/
PROFESSOR: Dr. Lucia Moura, Office: STE 5-027, email: lucia@site.uottawa.ca
Phone: 562-5800 X-6678 (to be used exceptionally; e-mail is preferable)
Office hours: Fridays 2:50-3:50 (plus other times to be decided).
LECTURES: Section A: Tuesdays 14:30-16:00 and Fridays 16:00-17:30 (STE A 0150)
Section B: Tuesdays 11:30-13:00 and Fridays 13:00-14:30 (ART 257)
LABS: Labs form an integral part of the course and must be attended.
The labs will be at room STE 0130 or STE 0131. Available time slots:
    LAB 1: MON 13:00-14:30;    LAB 2: MON 17:30-19:00;   
    LAB 3: TUES 13:00-14:30;    LAB 4: WED 11:30-13:00;   
    LAB 5: THUR 11:30-13:00;    (Note: two of these slots may be closed)
By the end of the first week, you will be assigned to one of the LABs.
You will be asked to indicate if any of the LAB times above conflict with other scheduled lectures.
Check the web page to see which LAB you have been assigned to.
POLICIES: You are responsible for reading my policies on plagiarism, remarking, late assignments and missed midterm, posted in the course web page.
Any mass communication with the class is going to be posted on the course web page under the heading of "News/Announcements"

TEXTBOOK: File Structures: an Object-Oriented Approach with C++,
Michael J. Folk, Bill Zoellick and Greg Riccardi, Addison-Wesley, 1998.
You will need a C++ book. The textbook does not cover details of C++ needed for assignments. One possible recommended book is:
C++ Primer, S.B. Lippman and J. Lajoie, Addison-Wesley, 1998.
The objective of CSI 2114 (data structures course) was to teach ways of efficiently organizing and manipulating data in main memory. In CSI 2131, you will learn equivalent techniques for organization and manipulation of data in secondary storage. In the first part of the course, you will learn about "low level" aspects of file manipulation (basic file operations, secondary storage devices and system software). In the second part of the course, you will learn the most important high-level file structures tools (indexing, co-sequential processing, B trees, Hashing, etc). You will apply these concepts in the design of C++ programs for solving various file management problems.
  1. Introduction to file management. Fundamental file processing operations.
  2. Managing files of records. Sequential and direct access.
  3. Secondary storage, physical storage devices: disks, tapes and CD-ROM.
  4. System software: I/O system, file system, buffering.
  5. File compression: Huffman and Lempel-Ziv codes.
  6. Reclaiming space in files. Internal sorting, binary searching, keysorting.
  7. Indexing.
  8. Co-sequential processing and external sorting
  9. Hashing
  10. Extendible hashing
  11. Multilevel indexing and B trees
  12. Indexed sequential files and B+ trees

Assignments (A) 30 %
Midterm exam (M) 25 %
Final exam (F) 45 %
Grade (G)
100 %
Final Grade (G):
if (0.25*M + 0.45*F)/0.70 < 50% then G=(0.25*M + 0.45*F)/0.70
if (0.25*M + 0.45*F)/0.70>= 50% then G=0.25*M + 0.45*F + 0.30*A
Assignment due dates:
(A) is the weighted average of:    Due date: 
Assignment 0  (2%) Jan 28 10:30 (Tuesday)
Assignment 1 (8%) Feb 11 10:30 (Tuesday)
Assignment 2 (10%) Mar 7 noon (Friday)
Assignment 3 (10%) Mar 28 noon (Friday)

Midterm test date: March 1st (Saturday) time: 2:00-4:00 p.m.

First lecture: January 7
Study break: February 17-21
Last date to drop: March 7
Last lecture: April 8
Final Exam Period: April 11-30, 2003