I, Oliver Bonham-Carter 👋

Assistant Professor in Computer Science, Allegheny College

I, Oliver Bonham-Carter, In June

I, Oliver Bonham-Carter 👋

Assistant Professor in Computer Science, Allegheny College

DataBase Systems

CMPSC-305-00: Database Systems


Academic Bulletin Description

A study of the application and evaluation of database management systems. Participating in hands-on activities that often require teamwork, students design, implement, and deploy database systems that store interdisciplinary data sets. In addition to learning how to develop and assess interfaces for databases, students study the efficiency and effectiveness of alternative data management systems. During a weekly laboratory session students use industry-grade technology to complete projects, reporting on their results through both written documents and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions. Prerequisite: CMPSC 101. Distribution Requirements: QR, SP.

The Lab

In order to acquire the proper skills in technical writing, critical reading, and the presentation and evaluation of technical material, it is essential for students to have hands-on experience in a laboratory. Therefore, it is mandatory for all students to attend the laboratory sessions. If you will not be able to attend a laboratory, then please see the one of the course instructor at least one week in advance in order to explain your situation. Students who miss more than two unexcused laboratories will have their final grade in the course reduced by one letter grade. Students who miss more than four unexcused laboratories will automatically fail the course.

Distribution Requirements

The following definitions were taken from the Distribution Requirements: Learning Outcomes website.

This course meets the course distribution requirements of QR (Quantitative Reasoning) and SP (Scientific Process and Knowledge) for its use of applying concepts of computer programming to the design and creation databases which are tested on public data from real-world applications. In addition, the class aims to introduce an component of ethical reasoning in the design, maintenance and application of database systems for potentially sensitive data.

Course Objectives

The course goals are formally the following;

The essence of the discipline of computer science is algorithms; this course will introduce students to the principles of data management using algorithms. We will investigate some of the key techniques that scientists use to manage data. Areas of discussion include, but are not limited to, relational databases and query languages, object-oriented data storage, encoding data in the eXtensible Markup Language (XML), low-level data storage, transactions and concurrency control, data warehousing and mining, and the implementation and testing of database applications.

The course will introduce students to the theory and practice of data management while covering both the well-established and the cutting-edge areas of the discipline.

The course also invites students to assess the correctness of their implementations and conduct both analytical and empirical evaluations of the performance of data management techniques. Moreover, the course will ask students to implement small- and medium-scale data management systems and to install and use a wide variety of support tools. In addition to improving their teamwork skills, students will enhance their ability to write and speak about software in a clear and concise fashion. Ethical discussions are also introduced into the course to introduce students to the concepts of responsible computing.

Performance Objectives

At the completion of this class, a student must be comfortable with fundamental data management topics and be aware of current research in the area. When given a new data management problem, students should be able to select proper data management tools and implement a complete application that uses them to solve the stated problem. Students also must develop a toolkit of data management concepts that they can use in the context of the solutions to real-world problems. Finally, students must develop and apply a strong knowledge of analytical and empirical techniques that they can use to characterize and predict the performance of data management systems.

Students should also be able to handle many of the important, yet accidental, aspects of implementing programs with modern programming languages and data management systems. In addition to being comfortable with program editors, compilers, debuggers, testing tools, virtual machines, database management systems, and query languages, students will be working with some Python programming where code will be provided to be modified.

Suggested TextBook:

Other Useful Textbooks:

Discord class server

If you are already on the department’s Discord server, then you will be given access to the course’s Discord channel, called #database-systems. If not, then you will need to join the department’s Discord server before you can be added to the course’s channel.

Note: During the first week or so, I will manually add your name to the class’ Discord channel.

Meeting Information


Tuesday/Thursday 9:30 AM - 10:45 AM 29 August 2023 - 19 December 2023 Alden Hall, 101 Lecture


Thursday 2:30 PM - 4:20 PM 29 August 2023 - 19 December 2023 Alden Hall, 101 Lab

Course Calendar

Office Hours (Dr. Bonham-Carter)

Schedule an appointment with OBC

Office Hours (Hang Zhao)

Schedule an appointment with HZ

ClassDocs/ repository, Syllabus and Schedule

Grade book Repository