|
Assigned Date | Work | Due Date (11:59 PM) |
---|---|---|
Wed. April 7 | Gradiance Exercises 1 -- two parts Challenge Problems 1 | Tue. April 13 |
Wed. April 14 | Gradiance SQL Labs -- two parts Challenge Problems 2 | Tue. April 20 |
Fri. April 16 | Project Part 0 (one week - trivial) | Thu. April 22 |
Wed. April 21 | Gradiance XPath/XQuery Labs -- two parts Gradiance Exercises 3 -- three parts Challenge Problems 3 | Thu. April 29 No lates |
Fri. April 23 | Project Part 1 (two weeks) | Thu. May 6 |
Fri. May 7 | Project Part 2 (one week) | Thu. May 13 |
Wed. May 12 | Gradiance Exercises 4 -- three parts Challenge Problems 4 | Tue. May 18 |
Fri. May 14 | Project Part 3 (two weeks) | Thu. May 27 |
Wed. May 26 | Gradiance Exercises 5 -- three parts Challenge Problems 5 | Tue. June 1 |
|
One of the best features of Gradiance is that you are permitted to test yourself on a particular topic as many times as you like. We strongly encourage you to continue testing on each topic until you complete the assignment with a 100% score at least once.
For each Gradiance exercise set or lab, your score is the
highest score achieved as of 11:59 PM on the due date. There is no
late policy for Gradiance work.
|
There are typically 1-2 challenge problems accompanying each
Gradiance assignment. 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.
|
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. No extra credit is given, but winners 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.
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. Furthermore, the TA's must be able to compile and run all submitted code on the leland machines without any additional packages or runtime support, and with no additional effort over that required for projects 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.
You will log into Oracle and run a few commands using sqlplus. This part is trivial - it simply ensures that your Oracle account is functional and you know how to perform basic operations with Oracle.
You will be given a large volume of data downloaded from the eBay Web site and stored in XML files. You will examine the data and design a good (we hope) relational schema for it. You will then write a program or scripts to transform the data from its XML form into Oracle's load file format, conforming to your relational schema. You will create your schema in your own Oracle database and load the data.
This part of the project will expose you to some additional aspects of Oracle, using the AuctionBase data. You will experiment with indexes and views, write a small PL/SQL program, and implement some constraint-checking features using Oracle CHECK constraints and triggers. You will also add a "current time" feature to your AuctionBase database.
As a baseline, you will design an appropriate set of queries and updates for your AuctionBase system and create a simple Web interface for them. Ambitious students may migrate the simple front-end into a user-friendly Web interface that looks like a real auction site, and may exploit triggers and other Oracle features for additional functionality. Use your creativity. Several projects will be selected to be demonstrated on the last day in class (for glory, not grades).
|
|
|
Under the Honor Code at Stanford, each of you is expected to solve Gradiance exercises and labs 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 Gradiance exercises, Gradiance lab queries, 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.