CSI 2131A WINTER 2001 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 COBOL or fourth-generation languages.
Prerequisite: CSI 2114
Note: COBOL is not used (the calendar entry was written a long time ago). We will use the C++ programming language.
WEB PAGE: http://www.site.uottawa.ca/~lucia/courses/2131/
PROFESSOR: Lucia Moura
tel: 562-5800 ext. 6309
email: lucia@site.uottawa.ca
OFFICE HOURS: Office: CBY A329 (floor: 3.5 or M)
Mondays 13:30-15:30
Tuesdays 13:30-15:30
LECTURES: Monday 11:30 - 13:00 LMX 122
Thursday 13:00 - 14:30 LMX 122
TUTORIALS/LABS: LAB1: MON 13:00-14:30 VNR 131 
LAB2: WED 11:30-13:00 LMX 221 
LAB3: MON 17:30-19:00 VNR 061 
LAB4: MON 17:30-19:00 LMX 121 
Check the web page for information on how to sign up for tutorials/labs and for (possible) additional lab times.
Tutorials/labs are integral part of the course and should be attended.

TEXTBOOK: File Structures: an Object-Oriented Approach with C++
Michael J. Folk, Bill Zoellick and Greg Riccardi
Addison Wesley Longman, 1998
C++ (check the web page for recommended books on 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, students will familiarize themselves with the "low level" aspects of file manipulation (basic file operations, sequential and direct access and characteristics of secondary storage). In the second part of the course, students will have an understanding of the most important high level file structure tools (indexing, cosequential processing, B trees, Hashing, etc). They will apply these concepts in the design of C++ programs for solving various file management problems.
  1. Introduction and motivation
  2. Basics of file processing, basic operations on files
  3. Secondary storage, physical storage devices
  4. System software: I/O system, file system
  5. Fundamental file structure concepts and managing files of records
  6. File compression
  7. Indexing and a first overview of Hashing
  8. Cosequential processing and external sorting
  9. Multilevel indexing and B trees
  10. Indexed sequential files and B+ trees
  11. Hashing and extendible hashing

Assignments (A) 30 marks
Midterm exam (M) 25 marks
Final exam (F) 45 marks
Grade (G)
100 marks
then G=
M + F < 35 10 * (M+F) / 7
M + F >= 35 A + M + F
IMPORTANT DATES: Assignment due dates:
(A) is the average of:  Due date: 
Assignment 1  Jan 29 11:00 am (Monday)
Assignment 2  Feb 16 11:00 am (Friday)
Assignment 3  Mar 26 11:00 am (Monday)
Assignment 4  Apr  9 11:00 am (Monday)

First lecture: January 4
Study break: February 19-23
Midterm exam date: March 3 (Saturday) 13:00-15:00 (room to be announced).
Last date to drop: March 9
Last lecture: April 9
Final Exam: April 12-30, 2001