CS145 - Summer 2006
Introduction to Databases
Course Content
CS145 provides students with a comprehensive introduction to the design of databases and the use of database management systems for applications. We will cover the relational model, relational algebra, and SQL, the standard language for creating, querying, and modifying relational and object-relational databases. We will also learn about XML data, including the XML query languages XPath and XQuery. Either the UML or E/R approach to database design will be covered, as well as relational design principles based on functional dependencies and normal forms. A variety of other issues important to database designers and users will be covered, including indexes, views, transactions, authorization, integrity constraints, and triggers. Finally, we will consider several advanced topics such as data warehousing, data mining, Web data management, Datalog, data stream processing, temporal databases, middleware, or peer-to-peer systems.

Online exercises in all topics and written challenge problems are complemented by a significant programming project in which students build a database-backed online auction system with a Web interface.

Time and Place
CS145 meets Mondays and Wednesdays, 1:15 - 3:05, in Skilling 191. The first class is on Wednesday, June 28.

Prerequisites
CS145 should be accessible to anyone with a solid Computer Science foundation that includes a reasonable amount of programming and knowledge of basic Computer Science theory. The programming project will use Unix, the Oracle database management system, the Java programming language, and a small amount of Web programming. We will assume that students are already proficient in Unix and Java. Previous experience with Oracle or with Web programming is not needed.

Books
One textbook is required for the course. You may purchase either of the two books listed below. A First Course consists of the first ten chapters of The Complete Book, verbatim, and we will be using only those chapters in CS145. However, if there is any chance you will eventually take CS245 (Database System Principles), then you should purchase The Complete Book, which is the required textbook for that course.

The first two chapters of the textbook may be downloaded for free, if you are unsure whether you will enroll in the course.
Please note that the first edition of A First Course (Prentice Hall, 1997), although a useful resource, has a number of differences from the second edition. We will assume that all students are using the second edition, or equivalently are using The Complete Book.

Grading
The components of the final grade will be distributed as follows:

More detailed information on grading of online exercises, challenge problems, and projects is provided on the Assigned Work page.

Class Participation: For on-campus students, the participation portion of the grade will be earned by attending class and participating in discussion, problem-solving, and question-asking during lectures.  For remote students, it will be based on electronic participation: responding by email to requests for questions or comments made in lecture, participation by email in small feedback exercises, and participation in the class newsgroup. (See the communication section on the course staff page.)

Course Conflicts
Students may be tempted to take another course at the same time as CS145 by watching lectures online and scheduling alternate exams. As stated on the Exams page, routine alternate exams will not be offered in CS145. The university strongly discourages students from enrolling in two classes given at the same time, and instructors are under no obligation to accommodate such students. If you provide an extraordinarily compelling case then an alternate exam may be given, but alternate exams may be oral exams given by the instructor.

Special Note for SCPD Students
While we understand the significant demands of taking a course while working, we would like to make it clear at the outset that no special exceptions can be made for SCPD students. Local SCPD students must follow the lectures, turn in the assignments, and attend the exams on exactly the same schedule as on-campus students (remote SCPD students will have the exams faxed to them to be taken on the specified exam date) . SCPD students are graded using the same criteria as on-campus students (except as noted above for "Participation.") Please ensure in advance that you will not have any business trips or important deadlines that conflict with the course, since no exceptions will be made. Also note that, like on-campus students, for emergencies you are allocated three unpenalized late days for assignments (see the Late Policy on the Assigned Work page).