CSI 2131 WINTER 2005 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-05/
PROFESSOR: Dr. Lucia Moura, Office: STE 5-027
email: lucia@site.uottawa.ca  
Office hours:
Mondays 12:00-12:40; Wednesdays 10:30-11:10.
LECTURES: Section A: Mondays 10:00-11:30 and Wednesdays 8:30-10:00 (CBY B012) 
Section B: Mondays 13:00-14:30 (Fauteux 232)
and Wednesdays 11:30-13:00 (Lamoureux 122)
LABS: Labs form an integral part of the course and must be attended.  Labs start on the week of January 10.
The labs will be at the following time slots:

LAB A1: TUE 17:30-19:00 (STE0130);
LAB A2: FRI 10:00-11:30 (STE0131);
LAB B1: MON 14:30-16:00 (STE0130);      
LAB B2: MON 14:30-16:00 (STE0131).
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 4 (Friday 5:00p.m.)
Assignment 2 (10%) Mar 4 (Friday 5:00p.m.)
Assignment 3 (10%) Apr  1 (Friday 5:00p.m.)

Midterm test date: February 13 (Sunday) time: 10:00-12:00
(rooms: STE H0104 (csi2131A) and STE G0103 (csi2131B))
First lecture: January 5.
Study break: February 21-25.
Last date to drop: March 4.
Easter Break: March 28.
Last lecture: April 11.
Final Exam Period: April 14-30, 2005