CMPS181, Winter 2014, Section 01: CMPS181-syllabus

CMPS181 Database Systems II -- Class Syllabus


Class times:  Mon/Wed 5:00p–6:45p, Baskin Engineering room 169

Lab hours: Mon/Wed 4:00p–4:50p, Baskin Engineering room 105

Instructor: Jeff LeFevre,

Office hours:  3p–4p Wednesdays, E2-341A or by appointment

Textbook:  Database Systems: The Complete Book (second edition), Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom. 

The course will cover selected topics from the book as well as other topics as time permits.  I have put one copy of the textbook on reserve at the Science and Engineering Library.  You will need the call number: QA76.9 D3 G3653

Class homepage:  https: / /

Class announcements:  You are responsible for checking the class home page for class announcements, assignments, and news.

 Tentative list of topics to be covered (subject to change as time permits):

Topic Number of lectures

Relevant Chapters

Introduction 1  NA
Overview of relational databases and SQL 1-2  2, 6
Disks and Files 2  13, 14
File Organizations and Indexing 2  13, 14
Tree-Structured Indexing: ISAM and B-Trees 2  14
Hash-based Indexing 1  14
Query Execution 1  16
External Sorting 1  15
Relational Operators 1-2  5
Query Optimization and Database Tuning 1-2  8, 15, 16
Concurrency Control 1  18, 19
Distributed Databases 1-2  20
Information Retrieval 1  21, 22
Data Warehousing


 10, 21
Special Topics





Lab Assignments: 45%
Midterm Exam: 25%
Final Exam: 30%

Exam dates:   Please note these dates are final and cannot be changed.            

Midterm Exam Monday  February 10 JBE 169 5:00p–6:45p
Final Exam Tuesday March 18 JBE 169 7:30p–10:30p



There will be no class on Monday January 20 and Monday February 17 due to campus holidays.

Term Project:

The project component of CMPS181 involves multiple programming assignments on the following modules of a relational database system:

  • Heap file
  • Buffer manager
  • B-tree index

Additionally, there will be a final project and report that will present a benchmarking study of the implemented components.

The projects will be based on the minibase relational system which is implemented in C++.  Students will be provided with a working copy of minibase and will need to complete the implementation of the components specified in each assignment.  A good online resource for general C++ programming help and reference is The Linux man pages can also be helpful (searchable).  There are also many useful reference books availble for C++, such as "C++ In a Nutshell" (O'Reilly Publishing) and "The C++ Programming Language" (B. Stroustrup).

Academic Dishonesty:

No form of academic dishonesty will be tolerated. You are encouraged to read the campus' policies regarding academic integrity (

You are allowed to ask for help when working on homework and lab assignments, provided that you acknowledge, on the work that you turn in, the help that you received. Points will be deducted if it appears that labor has been divided among multiple students; otherwise, there will be no penalty for small amounts of acknowledged assistance.

If you have any questions about these rules at any time, please discuss them with the instructor immediately.