COURSE NUMBER AND TITLE: CIS 4301, Information and Database Systems I OVERVIEW: This course is the first in a two-course sequence for undergraduate CS students that serves as an introduction to modern database systems. This first course provides an in-depth view of databases from a sophisticated user's perspective. Essentially, when you are done with this class you will know the right way to design and implement software that uses a database as a back-end to store and manage data. We will not cover database internals; that is the topic of the next course in the sequence. Although the course is not a programming course, students are expected to design a database and an accompanying application which requires prior programming experience and knowledge of the Java programming language. PREREQUISITES: CIS 3020 or CIS 3023, COT 3100 This means, familiarity with programming using Java; basic knowledge of algorithms, data structures (stacks, lists, queues, trees etc.), and discrete math. TEXTBOOK: Jeffrey D. Ullman and Jennifer Widom. A First Course in Database Systems. Second Edition, Prentice Hall, ISBN 0-13-035300-0. If you plan to take COP 4720 (the continuation of the courses) you should consider buying: H. Garcia-Molina, J. D. Ullman, and J. Widom, Database Systems - The Complete Book, 1st Edition, Prentice Hall, Upper Saddle River, NJ, 2001. ISBN: 0-13-031995-3 which covers the material covered in both classes. OUTLINE OF COURSE TOPICS: (subject to change!) Topics covered during the course of the semester include: * the entity relationship (ER) model * conceptual database design and modeling * the relational data model * (logical) database design incl. functional dependencies and normalization * relational algebra and SQL query language * constraints and triggers * system aspects of SQL incl. SQL Call-Level Interface, JDBC, and stored procedures * an introduction to object-relational database systems and the SQL-3 standard * an introduction to semistructured data and XML and its data model. EXAMINATIONS AND GRADES: Your course grade will be based on two exams which count for roughly 50% on the exams (~25% each) and 6 assignments consisting of a written part and a database programming and design part counting for the other half. The breakdown of the assignment weights is approximately 6%, 8%, 8%, 8% 8%, 12% - the written part makes up ~ 3% of each assignment. For the database design and programming part, students are expected to work in teams of two. For the written part (which is done individually), a Web-based SQL Lab offered by Gradiance will be used. The one-time lab fee for each student will be $20. Please note that you MUST TAKE BOTH EXAMS and DO ALL THE ASSIGNMENTS TO PASS THE COURSE. Letter grades will be assigned based on your normalized, total scores using the following approximate cutoffs: A Ð 90's and above, B Ð 80's and above, C Ð 70's and above, D Ð 50's and above. WORKLOAD: Based on the student feedback I have received over the years, the workload is moderate to heavy compared to other elective courses. On the other hand, students have commented that they felt the course is very useful in preparing them for a career in IT.