CS 502
Assignments |
Assignment
0 (January 29, 2002)
Assignment
1 (February 14, 2002)
Assignment
2 (March 7, 2002)
Assignment
3 (April 18, 2002)
Assignment
4 (May 15, 2002)
There will be several programming assignments throughout the semester. The assignments are designed to give students some practical experience in dealing with the technologies that make the Web and digital libraries work. In general, the assignments will require students to understand relevant protocol or specifications documents and write a small to moderate amount of java code that demonstrates an understanding of those specifications.
These assignments are not a test of your programming skills. Rather they meant to encourage you to read protocol specifications and APIs. In the real world this is not done in isolation. Thus, students are expected to work in groups on these assignments. At the beginning of the semester the class will break up into groups of three that will remain together for the remainder of the semester. Members of the group are expected to share information, jointly understand protocol documents and APIs, and write the final code product. Every member of the group will receive the same grade for the assignment and it is the responsibility of the group to ensure that the work is apportioned fairly.
The assignments assume that students can program in Java and understand how to download and use class libraries. No java or programming tutorials will be offered.
This is not a programming course. Imaginative algorithms or data structures will not be required or play a role in grading. Instead, grading will be based on completion of the assigned task and demonstrated understanding of the concepts and protocols underlying the assignment. Nevertheless, assignments should demonstrate good programming practices and documentation commensurate with the 500 level of this course.
Metrowerks CodeWarrior and Borland JBuilder are the preferred environments for developing and testing programs. One of the two is required for submitting assignments. CodeWarrior is in all the CIT and CSUG labs. A personal version of JBuilder is available for free at http://www.borland.com/jbuilder/personal/. The assignments have been tested in both environments.
All assignments are due by the beginning of the lecture on the due date. NO LATE ASSIGNMENTS WILL BE ACCEPTED.
To identify your assignments and make grading easier, assignments MUST conform to the following guidelines. :
Submissions that fail to conform to these guidelines will be rejected.
The assignment groups are:
The purpose of this assignment is to ensure that you are familiar with the assignment submission process.
Write a java program that prints out your name and the assignment number in the format "FirstLastAssignment#".
The purpose of this assignment is to develop some experience with the HTTP protocol that serves as the basis of the World Wide Web. Most of us only experience the Web only through a browser, such as Internet Explorer, but there is interesting and relatively simple technology under the covers.
Write a java program that:
The purpose of this assignment is to develop experience parsing and manipulating XML documents using DOM, SAX, and XSLT. XML is an fundamental part of the toolset that moves the Web from a network of documents to a globally distributed database.
This assignment has three parts as stated below. Please submit the assignment in one zip file. The zip should consist of three directories: part1, part2, part3, corresponding to the parts described below. Parts 1 and 2 will be JBuilder project directories and part 3 will be a single xsl file.
Write a java program that:
Write a java program that:
Write an XSL document that processes an XML document using saxon and produces an HTML document formatted as meta_report.html. Notes:
The purpose of this assignment is to give you some experience with the most developed of RDF tools; the jena toolkit developed by HP labs in Bristol UK. RDF is the one of the basic building blocks of the semantic web and provides the primitives for ontology development and processing.
This assignment has three parts. Please submit the assignment in one zip file. The zip should consist of two directories: part1 and part3, corresponding to the parts described below. The part1 directory should contain one file, an RDF schema. The part3 directory should contain a jbuilder project. Note that part 2 of the assignment has no deliverable.
The abc schema at ABC.rdfs provides basic resource classes and property types that can then be extended for specific community uses. You will write an RDF schema - pubABC.rdfs that derives from basic ABC concepts for use in the publishing community.
This schema defines the following classes:
This schema defines the following properties:
Note the following:
In this part of the assignment you will build an RDF model that uses entities from three namespaces:
You should develop an RDF model that describes the following:
A publishing event took place on January 1, 1999. The event involved an author agent named "Mary Doe" and a publishing agent named "HB publishers". The event leads to a situation in the context of which a hard cover book called "APIs are Fun - First Release" exists. A follow on publishing event took place on January 1, 2000. This event involved an illustrator agent named "John Smith" and a publishing agent named "SB publishers". The event leads to a situation in the context of which a soft cover book called "APIs are Fun - Illustrated" exists. The soft cover and hard cover books are both realizations of a work called "APIs are Fun".
Please note the following in completing the above:
The jena toolkit provides an API for building and manipulating RDF models. Use jena to write a program that does the following based on the RDF model you developed in part 2:
Before working on this programming task you will find it extremely useful to work through the tutorials in the jena release (you will find them in the tutorial directory).
The purpose of this assignment is provide the opportunity to examine the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH). This protocol is increasing popular as a low-barrier interoperability mechanism.
This assignment MUST be submitted via email by 5pm on May 15. Final grades are due soon after that.
Unlike previous assignments, assignment 4 should be worked on individually and you will receive an individual grade for it. You may freely borrow code from your previous assignments, much of which will be applicable for this assignment.
Write a Java program that does the following:
Hints and Notes: