S428/S528
Advanced Application Development

* Home  * Description  * Overview  * Schedule *
* Projects  * Grades  * Discussions *


S428/528 Project Descriptions

For this year, you would develop a project in the team that covers different aspects of Java, Object-oriented design and Web programming. Because of the delay in the formation of teams, I am going to give you the description of a project, instead of letting people start a proposal and design from scratch. I have put together descriptions and supporting files for these projects. There are different aspects of the project that you can choose to work on, each of which has its own problems and challenges. Depending on whether you are in s428 (Team 1-3) or s528 (Team 4-6) the requirements are somewhat different (see below). The project must be finished and turned in by the final's week, with a project open house scheduled during the dead week. The project described here would require you to do the following tasks:

  1. Research and document the resources necessary to create this system.
  2. Put together a design of the system, including web design, database design (I will provide part of the database design), and class design if any. The design should have documentation on each of the components you are planning to develop.
  3. Prepare a prototype of each of the webforms and classes, and create the database tables as needed.
  4. Complete the application with a top down design - drill down to the details as time permits.

Since we have only about seven weeks, I have a weekly schedule for the project. Make sure you meet at least once each week, and plan the week's objectives as a team, and one of you must ensure that all the objectives are fulfilled. As you would see, the objectives aren't much, but falling behind will cause you unnecessary load at the end of the course.

Week 1 (Mar 22-27): Research and Document your research findings.
Week 2 (Mar 28-Apr 3): Design system, including forms, database creation and classes.
Week 3 (Apr 4-10): Finalize design, start work on prototyping.
Week 4 (Apr 11-17): Finish Prototyping - set up meeting with me and show how far you have progressed, and discuss potential problems related to design, implementation and team issues.
Week 5 (Apr 18-24): Prepare for Project open house on Apr 28. Project does not have to be complete by Apr 28, but you should be able to show other students in the class how you approached the problem and thought about its solution.
Week 6 (Apr 25-May 1): Dead week. Apr 28 is the project open house. No presentations need to be prepared. Simply show and tell with your designs and current versions of prototype.
Week 7 (May 2- 4): Wrap up - finish up the incomplete code and documentation and submit. Final submission Date: May 4.

Project Descriptions

Project 1. Data mining and classification

In this project, you will use a data mining method to extract rules from a database, and then provide a method for using the rules for prediction and validation. A major portion of the code will be provided, so you will not need to write the data mining portion from scratch, but you will need to use the system to create a design that allow users to process data from an Oracle database and create rules for testing and prediction. You will use JSP and servlets for developing the user interface, and Java/JDBC backend for the data mining counterpart.

In the following description, I have discussed different levels of challenges in the project. If you are in S428, you need only to do the Base level. You can try challenge 1 if you so desire.

Challenges in this project

  1. Developing a Java/JSP/Servlet based user interface that makes it simple for users to select a data set, make small modifications to the data, and run the classification process.
  2. Providing users with a method to select the columns for generating the rules.
  3. Providing users with a method to select different parameters for the rule generation.
  4. Using the generated classification rules from a training set to test another dataset.
  5. Using the generated classification rules for prediction purposes.

Levels of complexity

  1. Base level: The base level involves creating a method that allows you to connect to a database, select a table, select the columns you want to run the classifier on, and the run the classifier to generate the classification rules.
  2. Selectivity Test: The first challenge in this project is to allow the users to select a rule from the generated ruleset, and view the data in the table that correpsond to this rule.
  3. Challenge 2- Prediction: To implement prediction, you will need to provide the users a method to specify values of a new data instance, and use the rules to determine what class this instance belongs to.
  4. Challenge 3- Flexibility: In this level, you will need to ensure that your implementation is not tied to any specific platform or installation, and allow all the various components to be specified by the user.

Database Design

The database should have the following basic components:

  1. Training tables - you will need to set up data tables for training your data mining application. Remember that training tables can be used for testing purposes as well. You may want to set up a "catalog" table that allows you to keep track of these tables.
  2. Implicant table - this is one table that is used by the data mining system. This table will be created the first time you run the system.
  3. Testing tables - testing tables are similar to training tables. These are tables which can be used for validation of the rules.

Source code and documentation

The source code and documentation of the Circle classifier can be downloaded from the web site for Circle, at http://www.kelley.iu.edu/asengupt/circle.