CSC 350

Database Systems

Course Syllabus

At the conclusion of this course, the diligent student will be conversant in major topics related to relational database management systems, including: database design, storage and file structure, query design and optimization, transactions, and concurrency issues. They will also be able to write basic to intermediate DDL and DML queries using the SQL language.

This course will also explore the differences between traditional relational databases, and newer database paradigms, including document, object, and graph-based databases.

Be forewarned. This is a heavily theory-based course. If you haven't taken Discrete Math or similar higher-level mathematics, or have trouble working out algorithmic logic, you will likely struggle in this course. In addition, the practical portions of the course require a lot of self-directed learning on the part of the student.


The textbook for this course is Database System Concepts, 6th Edition by Silberschatz.

About the Instructor

Dr. Falin

Dr. Lee Falin worked as a software engineer in industry for several years before completing his Bachelor’s of Computer Science at the University of Illinois, then going on to complete a PhD in Genetics, Bioinformatics, and Computational Biology at Virginia Tech.

After completing his PhD, he worked as a Bioinformatician at the European Bioinformatics Institute, while continuing to work and teach in the private sector.

He has launched a couple of micro-ISV startups, and taught at Virginia Tech, BYU-Idaho, and Southern Virginia University.

Dr. Falin’s research interests include machine learning, bioinformatics, software entrepreneurship, and education. Dr. Falin and his wife have five awesome children whom they homeschool.


Prior to taking this course, you should have completed CSC 250- Software Engineering (formally numbered as CSC 313).


Assignments are weighted as follows:

For more information about late work, and other course policies, please see the Course Policies section.