JAVA Programming Projects, Spring 2000

[ Project 1 ] : Scheduling of Tasks and Resources
[ Project 2 ] : Prim-Dijkstra algorithm for Network Design
[ Project 3 ] : Design Advisor
[ Project 4 ] : Gaussian Plume Dispersion
[ Project 5 ] : Fuel Flow Estimator
[ Project 6 ] : A-Bomb Attack!
[ Project 7 ] : Teaching Pre-schoolers about Shapes
[ Project 8 ] : Three-dimensional simulation of a Earth-Satellite Cosmic System
[ Project 9 ] : Pool Game
[ Project 10 ] : Carrom (An Oriental Game of Skill)
[ Project 11 ] : Circuit Board Heat Diffusion Simulator
[ Project 12 ] : Bicycle Frame Design
[ Project 13 ] : Voronoi Pattern Recognition
[ Project 14 ] : Thermophoretic Force of Particle in Channel with Temperature Gradient
[ Project 15 ] : Cow and Bulls
[ Project 16 ] : Long Jump Applet
[ Project 17 ] : Web Interface for Database
[ Project 18 ] : Off to the Races
[ Project 19 ] : Option Price Calculator
[ Project 20 ] : Unsteady State Heat Conduction in Rectangular Domain
[ Project 21 ] : Software Cost Estimation
[ Project 22 ] : Single Channel Canal Simulation
[ Project 23 ] : Roller Coaster Applet
[ Project 24 ] : Scrabble Applet


PROJECT 1

Title : Scheduler Applet
Developers : Vidit Mathur and Arun Chaudhary

Input. A graphical user interface will be provided wherein the user will put in the tasks to be executed, their duration, and priority and the precedence.

  1. The task input is free text and a text box will be provided for each task.
  2. The duration is a float value. We'll advice the user to input the duration in terms of number of hours or fractions thereof.
  3. The priority is an integer and it would be realized using a drop down list.
  4. The precedence would be a single step one (i.e. only one predecessor is allowed for a task and that would be its immediate predecessor with the added restriction that the first task would not have any predecessor.) Radio buttons would be used realize this.

Engine. This module would schedule the tasks input via the user interface, taking into account all the constraints. We plan to use a scheduling algorithm/heuristic to develop the schedule.

Output. A Gantt Chart depicting the schedule. When a user places the mouse over the task on the Gantt Chart, it will show the start and end times. Report (optional) showing the start and end times of the tasks would be generated.


PROJECT 2

Title : Prim-Dijkstra Algorithm for Network Design
Developer : Chi-Hsiang Hung

Description: It is an age of networks. Everyone would need to use telephone, Intranet or Internet everyday. And the networks are fundamental t getting cash, stocking shelves, issuing travel tickets, and virtually every other aspect of our daily lives. So how to make a right network design is an important question in this time. Understanding the tradeoffs among cost, performance, and reliability requires both a variety of algorithms and an eye for a good-looking network. (Note -- the applet only runs on JDK 1.2.2).

There are two famous algorithms for small-scale networks. One is Prim algorithm which would build an MST (minimum spanning tree) which tries to minimize the cost of the links by choosing short links. The other one is Dijkstra algorithm which would build a SPT (Shortest-Path Trees) which produces nodes where most traffic transits via a central node but more expensive.

Definition: A graph G is weighted if there is real number associated with each edge. The weight of an edge e will usually be denoted W(e). MST is a unique path to connect the network which is the lowest-cost solution, but it would probably transmit via many hops from one node to the other node. SPT: Given a weighted graph (G,W) and nodes n1 and n2, the shortest path from n1 to n2 is a path P such that ?E PW(e) is a minimum. It means we could have small average hops and would make the network faster.

Purpose: The purpose of this project is to calculate the costs, average hops of a network by Prim-Dijkstra Trees algorithm which we can see the trade-off between cost and hops and know which is the best way for us to design the network. The label for the Prim-Dijkstra tree is minneighbors?x dist(root, neighbors) + dist(neighbors, node)

Input/Output: The user will be allowed to input the value of ?, coordinate of his network nodes and the weight (cost) between any two different nodes. The applet will show the result by both plotting the tree of the network and displaying the costs and average hops.


PROJECT 3

Title : Design Advisor
Developers : Anoop K. Samuel and Sashidhar Bellam

Description : The ability to select a design with least cost that will bring profit to the firm is a challenge for any designer. The design choices known at the conceptual design stage can be represented as an AND/OR tree. With this applet the designer can represent the design choices available as an AND/OR tree. The algorithm tries to select the optimal design (with minimum cost). The selected design choice will be highlighted in the represented tree.

Input: The user inputs the node information necessary to build the tree. This includes the node parent, cost associated with each node, text to appear in the node, node operation (AND or OR).

Output: The design tree represented is converted to an optimization problem, which is solved and the optimal design choice will be highlighted in the tree. The minimum cost will also be displayed.


PROJECT 4

Title : Gaussian Plume Dispersion
Developers : Rudolf Riegner, Babajide Onakoya, Jin Oh

Project Description: This program will use the Gaussian Plume Equation to determine the effective stack height and the concentration of pollution at a particular position downstream from a smoke stack. The Gaussian Plume Equation is very useful for mechanical engineers and is currently one of the most widely used methods for routine calculations of air pollution dispersion from point sources.


PROJECT 5

Title : Fuel Flow Estimator
Developer : Tony Redmond

Project Description: This project will use a Finite Control Volume Analysis to estimate the rate of fuel flow into a jet engine. The user will be asked to input the velocity of the airplane, the intake area of the engine, and the exhuast area of the engine. The output will be the mass flow rate of the engine in kilograms per hour.


PROJECT 6

Title : A-Bomb Attack!
Developers : Richard Rinick, Randall Zyvoloski, and Robert Taksaaras.

Project Description: This java program will use the Nelder and Mead simplex optimization scheme to calculate the best location to detonate an atom bomb over the U.S Eastern seaboard. The program will take into account the population density (Gaussian distribution) and area of the city, as well as the location of detonation of the device. After a bomb is dropped, a new optimal location will be calculated based on the new (and reduced) total population. The program will also calculate the number of people that are vaporized, the number that are turned into ash, and the number that suffer a slow death due to radiation sickness.


PROJECT 7

Title : Teaching Pre-schoolers about Shapes
Developers : Sharon Ijusa, Andy Roberts, and Robert Ssali

Project Description: Young kids are learning how to operate computers easily and without much effort. This Java applet is designed to help young kids that are of pre-school age to learn some basic knowledge like shapes. This applet is designed to entertain kids while it educates them. The user is supposed to select the shape name from a pull-down list, and whatever is chosen displays in a window on the right. The user can then move the shape to the appropriate shaped hole. If the user gets it right, they recieve a good score. Finally, the user can get help and reset the program with the appropriate buttons.


PROJECT 8

Title : Three-Dimensional Simulation of Earth-Satellite Cosmic System
Developers : Chun-Ying Ko and Wei Chin

Project Description: This project will present the three-dimensional simulation of a earth-satellite cosmic system. The relevant mathematical equations can be found on the project page.


PROJECT 9

Title : Pool Game
Developers : Harishbabu Surendranath, Thomas Kurian, and Ravi Raghavan

Project Description: This project will simulate a 2-D Pool game, based on the English version of the Eight Ball game, that can be played on the same computer by two players.

Inputs and Outputs. The user can position the cue (before playing the shot), select the strength (speed) of the shot and finally effect the shot. The real-time positions/collisions/rebounds of all the balls are displayed along with appropriate messages for the players on occasions such as the pocketing of a ball, the playing of a foul shot etc.

Calculations. For each ball on the table, the calculations involved include the detection of its real time position and velocity, the detection of its collision/s with one or more of the other balls or with the table wall as the case may be and the detection of the ball being pocketed. For the current position and velocity of each ball, the time taken for each of the collisions is detected and the velocity vector is updated and checked to see if the ball has come to a stop. The concept of multithreading and double buffering is used to reposition the balls and update the repositioned balls on the screen without any flickering.


PROJECT 10

Title : Carrom (An Oriental Game of Skill)
Developers : Swaminathan Saikumar and Srinivasan Varadharajan

Project Description: Our project simulates the oriental game: Carrom. The striker can be moved, the direction and power set and the striker coin hits all other coins. The objective of the game is to score more than your opponent. Scores are based on coin colour and other rules.


PROJECT 11

Title : Circuit Board Heat Diffusion Simulator
Developer : Sudhir Kumar

Project Description: In this project, an applet has been built to solve for the temperature distribution in a two dimensional field with a rectangular heat sources inside it.The boundary conditions of this 2-D region are constant temperature to be set by the user. The user can set these boundary conditions on all four sides with the help of sliders along the respective sides. Besides this, the user also has the option of inserting rectangular heat sources. It is proposed to have a library of three such sources of different intensities and at maximum one each can be placed in the field. It is ensured that sources cannot overlap each other or the get ouside boundaries of the 2-D field.

After setting the boundary conditions and inserting the heat sources, as soon as the user presses Solve button, temperature distribution gets displayed in form of color contour bands. The legend is also displayed describing the temperature distribution. The domain between minimum and the maximum of the solution obtained gets divided in eight equal intervals and hence eight color contour bands. By clicking Reset button, every thing comes to its initial status / position and the user can start a new problem.

The 2D field has 2 dimensional array of nodes. Each of the nodes is having a temperature value. The Laplace equation in this 2D region is approximately satisfied by finite difference method. The new temperature value of each node determines the color of the small square zone it represents and hence color bands are formed.

Such heat transfer problems are often encountered in cooling electronic components, circuit plates, etc. This project is an attempt in the direction of simulating such a problem.


PROJECT 12

Title : Bicycle Frame Design
Developers : Jason Liu and Chris Ray

Project Description: Jason Liu and Chris Ray have modified an Interactive Polygon Calculator created by two previous ENME489C students, Amy Lau and Joe Neubauer. The method used for creating and calculating the polygon lengths and angles has been dramatically changed. This was required because our version has 5 points and 6 line segments rather than the original 4 lines and 4 segments. In addition, our version uses a Graphical User Interface that allows for future ENME489B (Bicycle Design Optimization) students to build upon. The goal for the future is to have several types of bicycle frames, each of which can be altered by selecting the appropriate bicycle type and using the mouse to move the frame. Certain constraints are applied to the angles and lengths to maintain "real world" frame sizes. The important lengths and angles of the frame are the primary outputs. The secondary outputs are the Bicycle Performance Specifications; which are based on the primary outputs. The Rider Information can be modified by future ENME489B students who wish to obtain information from outside users, through the use of servlet code.


PROJECT 13

Title : Voronoi Pattern Recognition
Developers : Rajesh Swaminamthan and Deepak Rajagopal

Project Description: Voronoi Tessellation is a pattern recognition technique employed in Geometric Modeling problems like collision detection schemes and robotic path interfaces. The Java applet that has been developed generates the voronoi regions for a user-specified set of points. Literature has a lot of techniques to evolve these regions. Our algorithm uses the fact that the perpendicular bisector between 2 points divides the entire region into 2 regions, in which any point in one half of the region is closer to one of these 2 points than the other and the same holds good for the other region. (See What is Voronoi Tessellation? for a more specific mathematical definition). The Java applet enables an user to not only specify a set of points and generate the regions for that but also enables the user to actually see how the entire region moves as he/she drags any of the points that he has specified.


PROJECT 14

Title : Thermophoretic Force of Particle in Channel with Temperature Gradient
Developers : Doug Kremer, Nguyen Quynh, and Lu Zhang

Project Description: This program computes the thermophoretic force exerted on a single particle in a channel when there is a temperature gradient. The temperature profile is calculated by solving the partial differential equation of equation of energy using the finite differnce method. After the parameters entered by the user, the program will output the plots of the temperature profile and the thermophoretic force as a function of the horizontal distance along the channel. For more detail about the program, please go to the code design part on the web page.


PROJECT 15

Title : Cow and Bulls Game
Developers : Sandeep Mishra, Kaushik Ghosh and Ankur Rupani

Project Description: This applet implements the game of "Cow and Bulls."


PROJECT 16

Title : Long Jump Applet
Developers : Molly Sedita, Darrell Zinn and Tom Fistek

Project Description: This applet shows a man running across the screen, the user makes him jump by pressing the jump button. The man then jumps on the track and lands in the sandpit. Once he has landed, the distance he jumped past the take off board is displayed on the screen. The user controls how far he jumps by changing his initial velocity and departure angle.


PROJECT 17

Title : Web Interface for Database
Developers : Rajesh Pavan Sunkari , Anil Kumar Madullapalli and Sreekanth Reddy Sambavaram

Project Description: Interfacing of databases to the world wide web is important for two reasons. First, with the growth of electronic commerce on the web, databases used for transaction processing must be linked with the web. Second, the web provides a common platform for everyone.

To implement the above, our group had developed a program similar to a typical secure online registration process. By using Java Servlets the HTML form is converted into an embeded SQL query and which is passed to the database using JDBC-ODBC bridge driver. The results from the database will be again passed to servlet which converts them into a HTML page. So, go ahead register yourself and login to see how it works!!! Please note project link is: http://129.2.133.185:8080/


PROJECT 18

Title : Off to the Races
Developers : Wai-Chung (Rachel) Lee and Warren Wrayford

Project Description: Our Java Applet, "Off to the Races" will allow users to gain a better understanding of the relationship between horsepower and performance. The applet will contain a race car and will ask the user to input the desired horsepower. In the event that the user inputs too much horsepower, the car will spin its wheels. However, if the user selects optimum amount of horsepower, the car will travel across the screen. The applet will also compute the quarter mile time and final speed.


PROJECT 19

Title : Option Price Calculator
Developers : Yang Zhao and Li Zheng

Project Description: Stock option price is one of the most intriguing pieces in stock valuation. This Java project is to design an option price calculator based on Black-Schole model. Through comparing the intrinsic value obtained from the applet and the current option price available in the stock market, user can tell whether the option is overpriced or under priced, and therefore to make wise investment decisions.


PROJECT 20

Title : Unsteady State Heat Conduction in Rectangular Domain
Developers : Srinivas Singanamalla and Ravi Arora

Project Description: The applet computes the temperatures along the nodes of a two dimensional rectangular domain. The different temperatures of the nodes will refer to different temperatures. First the user specifies, the dimensions of the 2D field and selects the proper boundary conditions. Based on the selection, the applet draws the nodes on the 2D field in different colors, when "calculate" button is pressed. The applet gives the temperatures at different time. The user can increase the time by changing the scrollbar.


PROJECT 21

Title : Software Cost Estimation
Developers : Aleksey Martynov, Rick Mullinix, and Dan Ragan

Project Description: This program uses software cost estimating equations based on previous study at Georgia Tech and RASSP to take user entered inputs and calculate development, maintenance, and testing costs for a software package. Inputs are entered using text fields, menus, and scrollbars. Three different types of outputs may be displayed, showing the different software costs and the total cost, as well as scheduling effort.


PROJECT 22

Title : Single Channel Canal Simulation
Developers : Vasilios Lagakos and David Bever

Project Description: The topic of our project is simulation of marine traffic through narrow waterways and the problems it will solve in computing the throughput and the average delay of vessels passing through. We will graphically simulate traffic in real time for a single channel canal in which a single vessel at a time is allowed to pass. The results of the simulation will be governed by the user's input parameters.


PROJECT 23

Title : Roller Coaster Simulation
Developers : Rudy Jasmin, Ilan Van Wesel and Joe Green

Project Description: A roller coaster simulation..


PROJECT 24

Title : Scrabble Applet
Developer : Rajiv Shubhada

Project Description: A scrabble applet.


Developed in March 2000 by Mark Austin
Copyright © 2000, Departments of Civil and Mechanical Engineering, University of Maryland