CSI 2131 WINTER 2006 course description


CALENDAR 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-06/
PROFESSOR: Dr. Lucia Moura, Office: STE 5-027
email: lucia@site.uottawa.ca  
Office hours:
Wednesdays 10:15-11:15, Thursdays 1:15-2:15
LECTURES: Mondays 10:00-11:30 and Wednesdays 8:30-10:00 (LPR155 - new!) 
LABS: Labs form an integral part of the course and must be attended.  Labs start on the week of Jan 9 or Jan 16 (to be announced on Jan 9).
The labs will be at the following time slots:
Lab1 Tuesday 17:30 STE0130, Lab 2/3 Friday 10:00-11:30 STE0131/STE2052
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.
OTHER
BOOKS:
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. 
PROGR.
LANGUAGE:
C++
COURSE
OBJECTIVES:
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.
COURSE
OUTLINE:
  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

MARKING
SCHEME:
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
IMPORTANT
DATES:
Assignment due dates:
(A) is the  average of:  Due date: 
Assignment 1 (10%) Feb 3 (Friday 5:00p.m.)
Assignment 2 (10%) Mar 3 (Friday 5:00p.m.)
Assignment 3 (10%) Mar 31 (Friday 5:00p.m.)

Midterm test tentative date:
February 11 (Saturday) time: 10:00-12:00 (check your schedule)
First lecture: January 4.
Study break: February 20-24.
Last date to drop: March 3.
Last lecture: April 5.
Final Exam Period: April 11-30, 2006