JAVA Programming Projects, Spring 1999

[ Project 1 ] : Step Response Computer
[ Project 2 ] : Decision Tree Applet Using Java Swing GUI
[ Project 3 ] : Fire Modeling over the Web
[ Project 4 ] : Control of Light-cycle Arena in the Game Tron
[ Project 5 ] : Interactive Genetic Algorithm Based Multiobjective Optimization Tool
[ Project 6 ] : Piping System Analysis
[ Project 7 ] : Specification and Engineering Analysis of Planar Polygons
[ Project 8 ] : Buckling Analysis of Columns
[ Project 9 ] : Bode Plot Computer
[ Project 10 ] : Modeling and Simulation of a Continuous Stirred Tank Reactor (CSTR)
[ Project 11 ] : Generation of Steam Table Characteristics
[ Project 12 ] : Least Squares Fit
[ Project 13 ] : Statistics Tutor and Trainer (STAT)
[ Project 14 ] : Convex Hull Gift Wrapper
[ Project 15 ] : Process-Based Model for Analyzing the Cost of a Product
[ Project 16 ] : Block Diagram Editor
[ Project 17 ] : Xbar Control Chart
[ Project 18 ] : Comb-Drive Actuator Applet
[ Project 19 ] : Robot Path Finder
[ Project 20 ] : Virtual Wheel of Fortune
[ Project 21 ] : Air Traffic Simulator for NorthEast Corridor
[ Project 22 ] : Multi-Objective Linear Programming
[ Project 23 ] : Buckling Analysis of Columns
[ Project 24 ] : Signal Timing and Change for Bus Premption System
[ Project 25 ] : Freeway Work Zone Applet
[ Project 26 ] : Engineering Economy
[ Project 27 ] : Bungee Jumper Trajectory

[ Fall Semester, 1997 ].


PROJECT 1

Title : Step Response Computer
Developers : Ramakrishna Arni and Venkatesan Krishnamoorthy

Description : The program will compute and display the step response of a system. User specifies the system by dropping in poles and zeros and moving them around. It then computes the system transfer function from the poles and zeros specified by the user. Then it converts the system to a state space model. Using an appropriate numerical method the program computes the time response of the system.

The GUI will consist of two panels; one helps the user to drop and drag poles and zeros and the other displays the time response of the system. In addition, there will be buttons that enable the user to perform tasks like clearing the panels, dropping and dragging the poles and zeros, etc.


PROJECT 2

Title : Decision Tree Applet Using Java Swing GUI
Developers : Tewfik Boutaleb and Chirag Maru

Description : Decision trees are used to examine the available information for the purpose of decision making. They include decision and chance nodes. The decision nodes are followed by possible actions that can be selected by a decision maker. The chance nodes are followed by outcomes that can happen without the complete control of the decision maker. The actions have costs associated with them, the outcomes have both probabilities and consequences. Each line followed from the beginning of the tree to the end of the tree is called a tree branch. Each branch represents a possible scenario of decisions and possible outcomes. The most suitable decisions can be selected such that the minimum total expected cost is obtained.


PROJECT 3

Title : Fire Modeling over the Web
Developers : Anthony Colletto , Noah Ryder and Steve Strege

Description : This project will compute the environmental consequences of a fire in an enclosure using the engineering fundamentals of fire dynamics. Fire modeling combines the theory of fire dynamics and experimentaion to provide engineers with the means to qunatatify the impact of a fire. The rate of heat release is generally the dominant parameter in an enclosure fire. A major limilaiton and common misconception of Fire Modeling is that it does not attempt to simulate the combustion process (heat release rate). The user must supply this value. Instead, Fire Modeling calculates the global impact such as temperature, velocity, and mass loss rate of the combustion products. Zone Fire Modeling separates the enclosure into two discrete regions or zones, the upper layer and lower layer. This method is based on the assumption that the layers are homogeneous. The fire plume serves as the interface between the layers.

An entire suite of Fire Modeling applications will be developed using the Java programming language. This allows a graphical user interface (such as buttons and check boxes) that greatly streamlines user input, and output that includes graphs and animation.


PROJECT 4

Title : Control of Light-cycle Arena in game Tron
Developers : Dave Vess and Brian Kelly .

Description : This game will allow one or two players to control a light-cycle in an arena. Each light-cycle will create a light-wall trail behind it which is impenetrable by the cycles. The object of the match is to have the other player crash before you do.

The major problem that we are attempting to solve is networking a game in which 2 players can interact on the same playing field. Another problem we are faced with is trying to create an AI so that single player games are possible. Some smaller problems which we will address are creating a playing field which is larger than the actual applet window, being able to alter the speed of the light-cycles for a set amount of time(speed burst), and including motion video sequences for opening and closing of each game. One thing that we are considering with the use of a playing field which is larger than the window is to have the light-cycle remain in the center of the screen and the background is what is actually moving.

The user interface will be broken into three distinct frames. The major frame will be the playing field window and this will be bordered by the other two frames. Below the playing field frame will be a graphic of the player controls for such functions as direction and speed burst. The third frame will be positioned to the right of the playing field frame. It will act as the options menu. Several options which could be included are: Choice of number of players, choice of cycle color, zoom factor for playing field, game restart, difficulty level, quit.


PROJECT 5

Title : Interactive Genetic Algorithm Based Multiobjective Optimization Tool
Developer : Reynolds, Brian J

Description : The data input consists of the following Genetic Algorithm parameters: Population size, number of individuals to replace, crossover probability, mutation probability, stopping criteria, good and bad values for each objective and precision of each variable. A sample optimization problem can be picked by the user from a pull down menu. Optimization problems will be limited to two-objectives. Reading in user-defined objective functions and constraints may be added, time permitting.

The Genetic Algorithm will randomly generate a set of potential design solutions (population). It will evaluate each member of the population based on the objective functions and check for constraint violation. Each member of the population will be ranked based on how close its objective function value is to the good value supplied by the user. Also considered in the ranking, solutions that violate constraints will be penalized. Then the solutions will be compared to one another to check for non-inferiority (i.e., to see which solutions dominate the others w.r.t. both objectives). Finally, new solutions will be generated from combinations of the best solutions and will replace a specified number of the worst solutions. This process repeats and the non-inferior solutions will be displayed, allowing the user to stop the optimization process once a good trade-off set is generated.

The program will output the graph of the trade-offs between the two design objectives, and will also display the variable values corresponding to the graphical solution in the objective space.


PROJECT 6

Title : Piping System Analysis
Developers : Mike Boosinger and Jeff Pulskamp

Description : A common problem in piping and pumping system analysis is the need to know particular system attributes. We will attempt to solve for pressure losses due to each pipe segment and the velocities at each connection of pipe segments in the system. The program will then output, graphically, the physical layout of the system they inputted and on a similar graphic, the pressures and fluid velocities at each connection of pipe segments. The program will also calculate and display a plot of the pressure loss vs. the total length of the piping system.

The program's graphical user interface will consist of drop down menus. When they are required, graphics of the menu selections will be provided. For example, if the user chooses bends from a menu, the new menu will include the orientations and inclinations and their respective graphical representations. The output plots will be shown in new windows.


PROJECT 7

Title : Specification and Engineering Analysis of Planar Polygons
Developers : Savinder Dhaliwal and Saravanakumar Velayudham

Description : Planar polygons play a central role in many areas of engineering analysis. For example, problems in the analysis of reinforced concrete cross-sections can be viewed as determination of flexural/shear strength of a polygon shape.

In this project we will design and implement a Java applet that allows a user to specify interactively the shape and position of a polygon, and then compute and display its engineering properties. The underlying polygon data structure will support the representation of simple and complex polygons. A simple polygon is one that has a single nonintersecting boundary. A complex polygon has one or more holes. During the polygon definition, nodes should be snapped to an underlying grid of coordinates. To be useful, the program should run a separate thread that acts as a diagnostic rule checker -- the rule checker will reject, for example, a new edge if it intersects with another edge. It should check the orientation of holes, and reorder the edges if necessary (otherwise the engineering analysis methods won't work).

Engineering properties of interest include: area, position of the centroid, moments of inertia (i.e., I_xx, I_yy, I_xy, I_yx), and orientation of the principle axes, detecting whether or not a point is inside the polygon, and distance to the nearest edge.


PROJECT 8

Title : Buckling Analysis of Columns
Developers : Jason A. Evans and Vincent Estrella

Description : For our java project, we plan on doing an analysis on the deflection of a beam. One side of the beam is fixed while the other side is free. The user will input the length of the beam and we will do an analysis of the deflection as well as anything else we can think to do. We will also put a picture of the deflection occurring.


PROJECT 9

Title : Bode Plot Computer
Developers : Bryan Boggio and Timothy Li

Description : This Java applet will plot the Magnitude and Phase vs. Frequency, in Bode fashion, for a user-defined system. The user will be able to drag zeros and poles onto the s-plane coordinate system. From this s-plane plot of zeros and poles, the program will compute and print plots of the Magnitude vs. Frequency and Phase vs. Frequency in Bode fashion. The program will also output the equation of the transfer function shown in the s-plane plot. The Bode style plots can then be used for the analysis and design of stability and transient response.


PROJECT 10

Title : Modeling and Simulation of a Continuous Stirred Tank Reactor (CSTR)
Developers : Ping Wang and Yunbing Huang

Description : The project involves modeling and simulation of a continuous stirred tank reactor (CSTR) with its temperature and level controlled. An irreversible, exothermic reaction is carried out in the perfectly mixed CSTR. The heat of the reaction is removed by the cooling water flowing in the jacket surrounding the reactor. In this project we will develop an applet that will simulate the process and the control system.


PROJECT 11

Title : Generation of Steam Table Characteristics
Developers : Jimmy Kjelland and Rob De Carlo

Description : The purpose of this project is to create a graphical interface (GUI) that will provide values for the characteristics needed for steam tables. This will provide a easy to use, variable reference for users in the Power Plant design industry, HVAC and Facilities design, and of course for students.

The program will take inputs, via a dialog box, about the state of the steam, and give you the graphical representation of the steam phase diagram at that state. Say two inputs were given, a graphical phase diagram would be displayed, then as a third is specified, that point would be identified on the phase diagram. At this point, the rest of the possible data would be displayed in the dialog box. As the user changes the values for certain variables he/she can observe the manner in which it affects the other characteristics of the state of the steam.


PROJECT 12

Title : Least Squares Fit
Developers : Muhammad Abdallah and Jeff Wang

Description : The purpose of this program is to create a least squares best fit for a series of data points. The user will be allowed to input a series of points and choose the degree of the fit. The program will then calculate the best fit equation using the least squares method. The user will be allowed to input his data points either manually or by pointing and clicking on an available grid. The applet will then output the result by both plotting the curve on the same grid and by displaying the equation of the curve.


PROJECT 13

Title : Statistics Tutor and Trainer (STAT)
Developers : Bharatwaj Ramakrishnan and Sameer Athalye

Description : Our course project aims in developing a statistics tutor for a specific set of skills: understanding the Normal Distribution. The project is split into two parts.

  1. The tutor provides the basics of a Normal Distribution, teaches how to identify the mean and standard from a normal distribution curve, how to identify the Probability (x > something) and x < something.
  2. The project tests the skills learned from the tutor by asking the user to input the mean and standard deviation from a randomly generated normal distribution curve. If the entered value is wrong then the normal distribution for the entered values will be calculated and superimposed over the initial graph and feedback will be given to the user to make the user's guess more accurate.

The data input will be the mean and standard deviation from the user. The computation involves calculating the normal distribution from the mean and standard deviation values. Data output is graphical.


PROJECT 14

Title : Convex Hull Gift Wrapper
Developers : Ravikiran Vishnuvajhala and Venkata Prasad Veluru

Description : User specifies a collection of fixed points, and the computer solves for their convex hull.


PROJECT 15

Title : Process-Based Model for Analyzing the Cost of a Product
Developers : Kartik Vaithyanathan, , Rajesh Natarajan, and Thiagarajan Trichy

Description : This project is to be used to develop a process based model for the cost analysis of a product. Each manufacturing process step in producing the final product is taken into consideration. The process flow is modeled as a sequence of steps and data for each step is obtained from a graphical user interface. The model will have three parts:

  1. A graphical user interface for obtaining the number of steps and data for each step,
  2. A computation part which computes the final cost employing the data collected in phase 1 and
  3. A user interface for displaying the output (graphically).

In the industry, it may not be possible to know the exact cost for each step and to account for this all the input parameters will support probability distributions.


PROJECT 16

Title : Block Diagram Editor
Developers : David Butler Jr. and Brian L. Erickson

Description : This project will create a Block Diagram editor in the Java language. This would give the user the ability to create block diagrams graphically. Once created the diagrams could be resized, moved, and given muliple inputs and outputs. The user should also be able to create multiple systems and connect them together.


PROJECT 17

Title : Xbar Control Chart
Developers : Raymond Gattis and Bryan Middleton

Description : We will attempt to design a Java application that plots an Xbar Control Chart. This chart is a control chart of the average values taken of several samples. The application takes input (Xbar values) from the user, and it uses the input to calculate the mean, standard deviation, the upper control limit (UCL), and the lower control limit (LCL). The mean, UCL, and LCL are then plotted on a chart along with the input points. The user then can see easily if the data points are inside or outside the control limits graphically. It will also allow the user to see if there are any patterns in the graphical data that may also be caused by an assignable cause (i.e. 7 or more points increasing or decreasing).


PROJECT 18

Title : Comb-Drive Actuator Applet
Developers : Maran Nalluswami and Gabe Smith

Description : Micro Electromechanical Systems (MEMS) is the leading edge of research in both, electrical and mechanical engineering. Although there is a great amount of research in MEMS and a vast amount of information can be obtained on the web, there are very few tools or applets one can find for MEMS design. A common application for MEMS devices is actuators and sensors. There are many types of actuators but the most common are comb-drive actuators. These actuators use electrostatic forces to provide displacement of a system. The amount of displacement can vary on a number of factors. For example, the number of fingers, dimensions of each finger, voltage applied, dimensions of flexures, etc.

The scope of this project will be to design an applet that will calculate the displacement of a comb-drive actuator given a set of input data from the user.


PROJECT 19

Title : Robot Path Finder
Developer : Arash Danaie

Description : This project will have a graphical interface in which the user can place a robot, and a set of obstacles and a goal. The program will calculate and display a path for this robot in a new window.


PROJECT 20

Title : Virtual Wheel of Fortune
Developers : DiAngelo, R. Brian and Jennifer Nauta

Description : This project will recreate the popular game show ``Wheel of Fortune.'' Each game will consist of three players, one being the user and the other two players being computer challengers.


PROJECT 21

Title : Air Traffic Simulator for NorthEast Corridor
Developers : Rajamani, Ravi , Aastha Verma and Shihchi Chiang .

Description : This project will create a simulator for air traffic along the North East corridor, the most heavily travelled region in the country. This applet will allow for three weather conditions moving horizontally across the corridor, affecting air routes. The airports will be clickable, revealing details of aircraft activity local to the airport and runway configurations.

In part 2 of this project, we will create detailed GUIs for air traffic behavior at three major airports along the North East corridor. The applet will allow for multiple queuing for landings and takeoffs, and plane collisions/explosions!!!


PROJECT 22

Title : Multi-Objective Linear Programming
Developers : Aravind Kurapati and Hui Li

Description : This Java project will provide engineers with a means to:

  1. Represent user-defined multi-objective linear programming problems in design variable space and objective function space
  2. Identify the Pareto set (trade-off curve) in the objective function space
  3. Conduct a parametric study by comparing Pareto curves subject to changes in constraints

Multi-Objective problems will be limited to two design variables, two objectives, and an arbitrary number of constraints.


PROJECT 23

Title : Buckling Analysis of Columns
Developers : Jason A. Evans and Vincent Estrella

Description : For the java project, we will do an analysis of a column. There will be several input values utilizing a few methods of input.

  1. The first input parameter will be the column material. This will be selected from a pull down menu of pre-defined materials.
  2. The second input will be the type of connection at the top of the column. This will also be selected from a pull down list. The choices will be free (no connection), pinned end, or fixed end.
  3. The third input parameter will be the type of connection on the bottom of the column. This will also be selected from a pull down list with the choices being fixed end or pin connected.
  4. The final input parameter will be the force applied to the top of the column.

There will also be a radio button or some other type of GUI to specify english or metric.


PROJECT 24

Title : Signal Timing and Change for Bus Premption System
Developers : Dong K. Seo and Challa Harsha .

Description : This java applet will do signal timing and change for a bus arrival at one intersection, minimizing total vehicle delay. Vehicle volumes at the intersection, and the minumum signal timing will be selected in accordance with the Highway Capacity Manual method. The applet will compute the best signal change offset for a bus arrival with minumum vehicle delay.


PROJECT 25

Title : Freeway Work Zone Applet
Developers : Kim Myers-Tran and Jawad Paracha .

Description : The applet will calculate the maximum queue lengths, delay, and the time needed to disspate the queue along a freeway under different types of work zones. By comparing these results with current agency policy, this applet will be useful in determining the number of lanes which will be allowed to be closed and also the duration of the lane closure.

The user provides information on the total number of lanes in one direction, type of the work zone, number of laneds to be closed, maximum desirable queue length, and the proposed work schedule. After providing this information, the user selects "Continue" and the segment of the freeway will pop up showing the lane closure. The user also enters the volume of traffic measured at increments of 15 minute intervals.

The calculations will be performed by plotting the arrival and departure curves. The arrival curve is derived from the entered traffic volumes. The departure curve is made up of two parts. During the work period, the departure curve is the capacity of the section based on the type of work zone and the number of open lanes. At the end of the scheduled work, the lanes are opened to the traffic. Therefore the departure curve will become the queue dissipation rate of 1800 passenger cars per hour per lane (pcphpl).

The applet will animate the queue build up and dissipation at different times of the day, along with animating the plot. After the completion of the animation, the Applet will print to the screen the values of the maximum queue length, the time of queue dissipation and the delay due to work zone (measured as the area of the plotted polygon). If the queue does not dissipate (i.e., the polygon does not close), a message will pop up telling the user to either change the work schedule or the lane restrictions. The user can change the input information and observe the effects on queue lengths and delay.


PROJECT 26

Title : Engineering Economy
Developers : Jiefei Huang

Description : In this project I will design and implement a spreadsheet form graphic user interface (GUI) using Java Swing, which will allow user input economic data like amount of investment, interest rate , investment years from keyboard. And user can choose what kind of investment method will be used.

In the computation part, the relative economic equations will be used to calculate the economic amount after the investment period. The program will output the calculated value after the computation done.


PROJECT 27

Title : Bungee Jumper
Developers : Jenny Engel

Description : The input required will be a weight in pounds and a bungee cord strength in pounds per foot, which will be entered using a scrollbar. The weight scrollbar will start at 100 pounds and end at 500 pounds. The bungee cord scrollbar will range from 1 to 100 pounds per foot with increments of 5 pounds per foot. The number on the scrollbar will be displayed. The user will click the OK button once the numbers desired are entered.

The applet will compute the displacement and velocity versus time for the bungee jumper.


Developed in March 1999 by Mark Austin
Last Modified May 17, 1999
Copyright © 1999, Mark Austin, Department of Civil Engineering, University of Maryland