CS145 - Fall 2011
Introduction to Databases

Course Content
CS145 provides the student 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 databases. We will also learn about XML data, including DTDs and XML Schema for validation, and the query and transformation languages XPath, XQuery, and XSLT. The UML approach to database design will be covered, as well as relational design principles based on dependencies and normal forms. A variety of other issues important to database designers and users will be covered: indexes, views, transactions, authorization, integrity constraints, triggers, on-line analytical processing (OLAP), and emerging "NoSQL" systems. Guest speakers from industry will explain commercial needs and trends in data management, complemented by Stanford speakers describing cutting-edge research.

Class Meetings
CS145 meets Mondays and Wednesdays, 11:00-12:15 in Building 370 room 370. We expect to keep most class meetings to one hour, finishing around noon. The first class is on Monday September 26. Class meetings will not be conventional lectures; they will include interactive learning activities, industry guests, research talks, and TA-led help and review sessions.

Approximately half of the class meetings are designated as required, and attendance contributes to the final grade. Each required class meeting will begin with a short, simple "quizlet" that serves both to take attendance and to spot-check awareness of what was covered in the previous required class. There will be eight such quizlets; the highest six quizlet scores for each student will comprise 6% of the student's final grade. There are no "excused absences" beyond the two dropped quizlet scores; no exceptions!

Prerequisites
CS103 (Mathematical Foundations of Computing) and CS107 (Computer Organization and Systems) are recommended but not absolutely required. CS145 should be accessible to anyone with a solid computer science foundation -- a reasonable amount of programming (as in CS107) and knowledge of basic computer science theory (as in CS103). The programming project will use Unix, Java, the SQLite database management library, and some straightforward PHP web programming. We will assume that students are already proficient in Unix and Java. Previous experience with SQLite or PHP is not needed.

Textbook
No textbook is absolutely required for the course, however most students will want to use a textbook to augment and reinforce the core material covered in the videos, as well as for reference and a source of additional exercises. We recommend one of the two books listed below. A First Course consists of the first twelve chapters of The Complete Book, verbatim, and all CS145 topics appear in these chapters. The Complete Book is the required textbook for CS245 (Database System Principles). If there is any chance you will eventually take CS245, or if you wish to have a comprehensive reference that covers databases from a systems as well as a user perspective, then you should purchase The Complete Book. Otherwise, A First Course suffices for CS145.

The first two chapters of the textbook may be downloaded for free from either of the book web sites linked above. Also, two copies of The Complete Book are on reserve at the Huang Center Engineering Library.

If you already own or prefer to use a different database textbook, three other popular textbooks are also cross-referenced in the db-class Course Materials page. While they don't cover precisely the same topics in precisely the same fashion as the textbooks we recommend, much of the core material is the same.

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

The 50% for Assignments further breaks down into:

Students earning an A+ in the course (typically 3-5 students) will receive a personal letter of congratulations from the instructor, along with an invitation to enjoy lunch at the Stanford Faculty Club with the instructor, the TAs, and the other A+ students. The A+ students also will be top candidates for CS145 TA positions in subsequent offerings of the course.

Incompletes are not offered as a grade option in CS145. Students are given incompletes only in the rare case of an incapacitating medical condition arising during the quarter and brought to the attention of the course staff in a timely fashion.

Students with Documented Disabilities
Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Student Disability Resource Center (SDRC) located within the Office of Accessible Education (OAE). SDRC staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty dated in the current quarter in which the request is being made. Students should contact the SDRC as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk; phone 723-1066.

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. SCPD students must attend class, turn in the assignments, respect staff office hours, and take the exams on exactly the same schedule as on-campus students. SCPD students are graded using the same criteria as on-campus students. 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 four unpenalized late days for assignments, and only your top six class-attendance quizlets will count towards your final grade.