General Information


Professor: Brad Vander Zanden

TAs : See the canvas announcements for this course. The announcements have the TA names, contact information, and zoom links/passwords for office hours.

Required Textbooks

The required textbook should be available in ebook form via Canvas.

Reference Books

I think the assigned textbooks do an excellent job of covering the material in this course. The two exceptions are the lack of theoretical coverage of the relational data model and the relatively cursory coverage of node.js in the Web Programming book. I will create a handout that covers the theoretical basis for the relational model (relational algebra and calculus). As a supplement for node.js I suggest that you look at the node.js coverage on In general does an excellent job of explaining the web programming concepts covered in this course and you can use it as a backup to the textbook. I have also published my own notes on javascript and php which you can use as a further reference.

Course Description

This course provides a practical introduction to databases and web programming. 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 web programming and we will cover all of the different common languages used to construct a web-site. We will start with HTML (HyperText Markup Language) and CSS (Cascading Style Sheets), which are used to organize the content of a web-site (html) and format the web-site's visual appearance (css). We will then cover PHP which is the most commonly used server-side scripting language. Finally we will cover Javascript, which is the commonly used client-side scripting language, as well as one of the most commonly used Javascript libraries, JQuery. We will also cover node.js, which allows server side scripting in Javascript.

Because of the limited time available during the semester the intent of the course is to give students a basic understanding of databases and the scripting languages used in web programming. 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

  • Grading Scale:
         A: 90-100
         B: 80-90
         C: 70-80
         D: 60-70
         F: < 60
    Pluses may be given for composite scores near the top of the range and minuses may be given for composite scores near the bottom of the range. I sometimes curve letter grades based on your final composite score.

    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+.

    Quizzes, Pre-Class Activities, and After-Class Activities

    Quizzes and After-Class activities will be assigned on Canvas and will be due at 11:30am before the next scheduled class. That means that quizzes/activities for Tuesday lectures will be due on Thursday before class and quizzes/activities for Thursday lectures will be due on Tuesday before class. Please note that there are also video lectures and quizzes/activities for a number of days when class will not physically meet.

    Quizzes/activities will appear just after class ends. I will not be giving any extensions/makeups on the quizzes/activities. If you miss a quiz, you will not be able to see it. Please make arrangements with another student to get the quiz questions and answers in this case.

    Pre-class activities are assigned from the zybook and are due at 11:30am immediately before class. They are designed to get you to work actively with the material before coming to class.

    I understand that there will be extenuating circumstances throughout the semester that may cause you to miss one or more quizzes and/or activities and for that reason I will be dropping a number of each of them as follows: