CS145 - Spring 2003
Introduction to Databases
Assigned Work
There are three types of assigned work in CS145:
  1. Online exercises using the On-Line Test Center (OTC), a system under development by Prof. Ullman and others.
  2. Challenge problems, whose solutions are to be typed up and turned in electronically.
  3. A significant multi-part programming project.
The following table is a tentative schedule for the assigned work. Links to actual assignments will be added.

Assigned DateWorkDue Date (11:59 PM)FAQSample Solution
Wed. April 9 OTC Exercises 1
and Challenge Problems 1
Tue. April 15 OTC FAQ1
Challenge Problems FAQ1
Wed. April 16 OTC Exercises 2 (SQL Labs)
and Challenge Problems 2
Tue. April 22 OTC FAQ2
Challenge Problems FAQ2
Fri. April 18 Project Part 0 (trivial) Thu. April 24 Project FAQ0 No solution for projects
Wed. April 23 OTC Exercises 3 (in 3 parts)
and Challenge Problems 3
Tue. April 29 (OTC) and
Wed. April 30 (challenge)
Challenge Problems FAQ3
Fri. April 25 Project Part 1 Thu. May 1 Project FAQ1 No solution for projects
Mon. May 5 Project Part 2 Thu. May 15 Project FAQ2 No solution for projects
Wed. May 14 OTC Exercises 4 (in 3 parts)
and Challenge Problems 4
Tue. May 20 OTC FAQ4
Challenge Problems FAQ4
Fri. May 16 Project Part 3 Thu. May 29 Project FAQ3 No solution for projects
Wed. May 28 OTC Exercises 5
and Challenge Problems 5
Tue. June 3 OTC FAQ5
Challenge Problems FAQ5

Online Exercises

(20% of your final grade)

The purpose of the online exercises is to ensure that you have learned the basic material in CS145. You will perform the exercises using
OTC, a unique system for generating different exercise sets on selected topics each time it's used, including a "lab" component for automatically testing students' SQL queries and programs. OTC was first used in Stanford's CS145 during fall quarter 2002, and is now being used in other Stanford courses and at other universities.

One of the best features of OTC is that you are permitted to test yourself on exercises for a particular topic as many times as you like. We strongly encourage you to continue testing on each topic until you complete the set of exercises with a 100% score at least once.

For each OTC exercise set, your score is the highest score achieved as of 11:59 PM on the due date. There is no late policy for OTC exercises.

Challenge Problems

(5% of your final grade)

Challenge problems are generally more open-ended and more difficult than the exercises in OTC. The challenge problems are designed to make you think more deeply about the topics covered. Some (but not all) of the problems are by design very challenging! We do not expect most students to completely solve every single challenge problem in the course. Grading of challenge problems is on a relatively coarse scale, and credit is given if you make a good attempt at a problem and are in the direction of the right solution.

There are typically 1-2 challenge problems accompanying each OTC exercise set. We ask you to type up your solutions and submit them electronically. (Details are provided with the assignments, and students who strongly prefer to hand-write their solutions may scan them for submission.) The late policy for challenge problems is outlined below.

Programming Project: AuctionBase

(25% of your final grade)


Your project is to build an online auction system called AuctionBase. At the back-end, AuctionBase manages all of its data in the Oracle database management system. At the front-end, AuctionBase provides a friendly Web interface to its users. AuctionBase is modeled roughly after the
eBay online auction system. In fact, we will give you a considerable amount of real data downloaded from eBay (courtesy of the University of Wisconsin) to initially populate your AuctionBase system.

We will expect certain minimal functionality in each AuctionBase system - beyond that, the sky's the limit. Minimal functionality includes a variety of queries and browsing capabilities over the current items up for auction, the bids on those items, and the sellers and bidders. AuctionBase also must provide a means for entering bids, and for concluding auctions on individual items. Various integrity constraints must be monitored. Although AuctionBase uses the Oracle DBMS and therefore has transaction support, multi-user issues are not a focus of the project.

Web programming skills are not required for the AuctionBase project. We will provide skeleton Java servlets and HTML code for most aspects of the Web interface. Those students savvy in Web programming may rewrite or extend the interface as they please.

At the end of the course, there will be a "contest" in which we select a few of the best AuctionBase systems to be demonstrated in class and linked to the course home page. Winners also will be invited to enjoy lunch at the Stanford Faculty Club with Prof. Widom, the TA's, and the other contest winners.

The scope of the AuctionBase project is such that it can easily be completed by each student in the class individually - partners or teams will not be used.

Programming and System Issues

To develop the project all students will use the Oracle relational database management system (Oracle 9.01 server, 8.1.7 clients) and the Unix operating system. You will try out Oracle's sqlplus interactive interface, its PL/SQL proprietary programming language, and several other features. For the Web front-end and interacting with Oracle, students are expected to use the Java programming language, Java Servlets, and JDBC. Help sessions will be provided.

There are many other ways to develop Web applications and interact with Oracle, e.g., using C++ and CGI, or using PHP. Students are welcome to use alternative languages and tools if they wish, and we have linked to support materials for some of them, however only Java and JDBC will be supported by the course staff, and the specifications for the project must be met regardless of the languages or tools used. The project also includes processing of XML files. We will provide XML parsers in Java and C++, but again students are welcome to use other tools or languages if they prefer. Important note: Students using alternative languages and tools must be able to submit all of their code using the standard submission procedure, and their code needs to be able to be run and checked by the TA's with no additional effort over those projects implemented using the supported languages and tools.

Oracle and Java are available on the Sun Solaris workstations on the second floor of Sweet Hall, e.g., the saga, elaine, and myth machines. To open an account on these machines, type open at the login: prompt and follow the instructions. SCPD students can access the Sun workstations remotely. If you have access to an equivalent Oracle system (version 8 or higher, including PL/SQL and JDBC), you may use it instead of the Stanford system. However, we do expect you to use Oracle and not some other DBMS - not because we love Oracle, but because we can support only one DBMS, and we will be exploring some specific capabilities of this system. If you choose to use your own workstation and/or your own Oracle system, please be aware that we cannot make any exceptions for problems incurred by using your own computing facilities rather than those provided by Stanford.

We will assume that students are proficient already with Unix and with the the Java programming language.

Project Parts

The AuctionBase project proceeds in four parts. The schedule for assignment and completion of project parts is specified in the table at the top of this page.

Late Policy


Regrade Policy
Only challenge problems and programming work can be regraded. (If you find a significant technical error in OTC exercises you'll receive extra credit!) Please send an email message to cs145@cs stating that you believe you deserve a regrade and explaining precisely why. Please do not ask for a regrade on a challenge problem until you have studied our sample solution. Include your name, leland username, and the number of the challenge problem or project part in question. The TA responsible for grading the work will contact you.

Honor Code

Under the Honor Code at Stanford, each of you is expected to solve OTC exercises independently, and to submit your own original work for challenge problems and the programming project. On many occasions when working on assignments (but never exams!) it is useful to ask others - the instructor, the TA's, or other students - for hints, or to talk generally about aspects of the assignment. Such activity is both acceptable and encouraged, but you must indicate on all submitted challenge problems and programming work any assistance (human or otherwise) that you received. Any assistance received that is not given proper citation will be considered a violation of the Honor Code. In any event, you are responsible for understanding, performing or writing up, and being able to explain on your own, all OTC exercises and other work that you submit. The course staff will pursue aggressively all suspected cases of Honor Code violations, and they will be handled through official University channels.

If you have any questions about this policy or about the degree to which we will pursue Honor Code violations, please discuss your concerns with the course staff immediately.