CSI 2131 WINTER 2004 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-04/
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: Mondays 3:00-4:00 (other times TBA).
LECTURES: Section A: Mondays 13:00-14:30 and Wednesdays 11:30-13:00 (STE A 0150) 
Section B: Tuesdays 14:30-16:00 and Fridays 16:00-17:30 (CBY B 205)
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: TUES 16:00-17:30;        LAB 2: WED 10:00-11:30; 
LAB 3: THUR 11:30-13:00;        LAB 4: FRI 14:30-16:00;
The lab time on Monday has been closed. Please, check the course web page under "about lab assignment" for info on how to get assigned to a lab. 
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  average of:  Due date: 
Assignment 1 (10%) Feb 9 (Monday 5:00p.m.)
Assignment 2 (10%) Mar 4 (Thursday 5:00p.m.)
Assignment 3 (10%) Apr  1 (Thursday 5:00p.m.)

Midterm test date: February 15 (Sunday) time: 10:00-12:00

First lecture: January 5 or 6.
Study break: February 23-27
Last date to drop: March 5
Last lecture: April 5 or 6.
Final Exam Period: April 13-30, 2004