CS/CIS 330: Applied Database Systems

Course Information

In this course, students will learn how to build a data-driven website. The course will give a thorough introduction to three-tier architectures, technologies used at the three tiers (Servlets, JavaServerPages, Cookies, XML, XPath, XSLT, Enterprise Java Beans), and modern relational database technology (SQL, JDBC, database design and tuning, and normalization). The course will also give a short introduction to web services and their context in a data-centric view of an enterprise information architecture. The course is divided into lectures that explain the concepts and a series of homework assignments where students gain hands-on experience in implementing the concepts.

The course emphasizes hands-on application building with commercial  tools, and students will model and build applications with Apache Tomcat, Microsoft SQL Server, DeZign for Databases, and Java Enterprise Technologies.

General Information

  • Instructor: Johannes Gehrke (johannes@cs.cornell.edu); office hours: Tuesdays, 1:30-2:30pm
  • Course Developer: Scott Selikoff (selikoff@cs.cornell.edu)
  • Teaching Assistants (cs330-ta-l@cs.cornell.edu):
    • Sherry Lee, office hours: Tuesdays, 4:30-5:30pm, Upson 328B.
    • Eric Lee, office hours: Wednesdays, 4:15-5:15pm, Upson 328B.
    • Joel Chan, office hours: Thursdays, 4:30-5:30pm, Upson 328B. Starting the week of May 3, Joel will have office hours on Mondays from 4-5pm.
    • Biswanath Panda, office hours: Thursdays, 5:30pm-6:30pm, Upson 328B.
  • Class time and location: Tuesdays (2:55-4:10) and Thursdays (2:55-4:10), Hollister 206
  • Required textbook. Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems (Third Edition), McGrawHill 2002. The textbook is available in the campus bookstore.
  • Laptops. Each student who will take this class will receive a rental laptop for the semester to do the homework assignments. Laptops have been handed out on January 29 starting at 5:30pm in Upson B17.
  • Homework assignments. This class has many small and a few large homework assignments. The first two homework assignments will already be handed out on January 29 and they are due on February 5, thus it is important that you commit early to taking this class. Most homework assignments give you hands-on  introductions to the technologies used in building three-tier architectures. Regrades of the homework assignments will only be handled through the course management system, and only within two weeks of when the assignment has been graded.
  • Course management system. Handout, handin, and regrades of the assignments will happen through the course management systems, http://cms.csuglab.cornell.edu
  • Workload. The workload in this class is high since you are expected to gain hands-on experience with all the technologies that are introduced in class. In addition, the class only covers the concepts behind the technologies that you use, and you will have to familiarize yourself with implementations of these concepts during the homework assignments.

Exams and Grading

  • Prelim: We have an evening prelim on March 18 at 7:30pm in Philips 203. There is no regular class on March 18.
    • Material for the prelim: The prelim covers all material that we covered in class until March 16. Thus it will cover material from the following chapters in the textbook (as much as we covered in class): Chapters 1 to 7, 8, 9.2, 12, 16, 19, 21. You will not have to write code, and you will not be asked about Tomcat installation etc.
    • Here is a practice prelim, this is the prelim from last year.
    • The best way to practice for the prelim is do the exercises at the end of the chapters in the book in a group of a few students together and to talk about the problems.
  • Final exam: During the regular exam period. Our exam is in exam period 13, and thus our exam takes place on Wednesday, May 19 from 9:00-11:30am. The final exam will take place in Philips Hall 213.
    • The review session for the final exam will take place on May 17 at 4:30pm in Upson Hall 109.
    • Here is a practice final exam, this is part of the final from last year.
  • Grading: Homework assignments (50%), prelim (15%), final exam (25%), class participation (10%).

Prerequisites

The only prerequisite for the course is knowledge of CS211 or an equivalent knowledge of the Java programming language. CIS130 and CIS230 are not required to take CS330.

Academic Integrity

You are expected to maintain the utmost level of academic integrity in the course. Any violation of the code of academic integrity will be penalized severely. You are not allowed to collaborate on the homework assignments except for discussing the assignment with other students in the class. You are not allowed to share code or any other written material.