General Information


Professor: Brad Vander Zanden

NameOfficeemailOffice Hours
Ryhan PathanMK406/614rpathan@utk.eduTR 5:05-6:30pm
Charles PhillipsMK210cphill25@vols.utk.eduM 2-5

Please see Ryhan or Professor Vander Zanden if you have questions about the homework or concepts in the course. Charles is just grading for the course so please email him or see him only if you have a question about a homework assignment that he graded.

Required Textbook

Database Systems: A Practical Approach to Design, Implementation, and Management, 6th Ed. by Thomas Connolly and Carolyn Begg.

Reference Books

There are no required textbooks for the scripting portion of the course. Most of the assigned readings will be from or my own personal notes. However, here is a list of good introductory books for the languages that we will be covering in the course:

  1. Beginning Perl by Simon Cozens. Free online reference.
  2. Perl in 24 Hours. Clinton Pierce. Sams Publishing.
  3. Learning Perl. Randal Schwartz, Tom Phoenix, and Brian D Foy. O'Reilly.
  1. PhP6 and MySQL, Steve Suehring, Tim Converse, and Joyce Park. Wiley.
  2. PhP6 and MySQL5 for Dynamic Web Sites: Visual QuickPro Guide, Larry Ullman. Peachpit Press.
  3. PhP in 10 minutes. Chris Newman. Sams Publishing.
  1. JavaScript: The Definitive Guide. David Flanagan. O'Reilly.
  2. JavaScript DeMystified. Jim Keogh. McGraw Hill.

Please note that these scripting languages are constantly evolving and that the reference texts are published in new editions fairly often. Hence you should always make sure that you are getting the latest edition of the reference text.

Course Description

This course provides a practical introduction to databases and scripting languages. Databases are widely used to structure and retrieve data. This course will focus on the most common type of database, called a relational database. We will explore the use and design of relational databases using the public domain database language mySQL and we will also explore some of the theory that supports the relational database model. While we will start the course by showing you how to use a database, the bulk of the database portion of the course will cover how to design a database.

The second half of the course will be devoted to scripting languages, with the focus primarily being on Perl, PHP, and Javascript. We will first examine their language design and how they differ from traditional, compiled languages. We will then examine different applications areas for scripting languages, including data extraction and report generation, which is what Perl is useful for, and web programming/database management, which PHP and Javascript are useful for.

Because of the limited time available during the semester the intent of the course is to give students a basic understanding of databases and scripting languages. This foundation should give students a good working familiarity with each of the languages and allow them to accomplish many of the tasks for which the languages are designed.

Course Prerequisites

CS311: Relational databases are based on the notion of relations and sets, so it is important to have the mathematical background from CS311 in order to understand relational algebra and relational calculus, which forms the theoretical basis for relational databases.


For Undergraduates

For Graduate Students (CS565)

Grading scale is same as for undergraduates.

Missed Exams

Should you miss an exam without a valid excuse, you will receive an average for the remaining exams and a one letter grade reduction in your final grade. For example if you would have received a B+, you will now receive a C+.