PII:
Computers Educ. Vol. 30, No. 3/4, pp. 183±194, 1998 # 1998 Elsevier Science Ltd. All rights reserved Printed in Great Britain S0360-1315(97)00062-6 0360-1315/98 $19.00 + 0.00
DEVELOPING INTERACTIVE EDUCATIONAL ENGINEERING SOFTWARE FOR THE WORLD WIDE WEB WITH JAVA JOHN A. REED and ABDOLLAH A. AFJEH Department of Mechanical, Industrial and Manufacturing Engineering, The University of Toledo, Toledo, OH 43606, U.S.A., [e-mail: jreed,
[email protected]; Fax: 419-530-8206] (Received 9 June 1997; accepted 29 October 1997) AbstractÐThe World Wide Web has emerged as an eective mechanism for distributing educational material to students beyond the bounds of the classroom. The introduction of mobile code, such as Java applets, combined with the pervasiveness of the World Wide Web, present the potential to signi®cantly enhance the development and distribution of educational software. This paper illustrates the design and implementation of a Java applet for use in educational propulsion engineering curricula. The Java Gas Turbine Simulator applet provides an interactive graphical environment which allows the rapid, ecient construction and analysis of arbitrary gas turbine systems. The simulation system couples a graphical user-interface and a transient, space-averaged, aero-thermodynamic gas turbine analysis method, both entirely coded in the Java language. The combined package provides analytical, graphical and data management tools which allow the student to construct and control dynamic gas turbine simulations by manipulating graphical objects on the computer display screen. The simulator, running as a Java applet, can be easily accessed from the World Wide Web and run from a variety of heterogeneous computer platforms, including PCs, Macintosh, and UNIX machines, through the use of Java-enabled Web browsers. # 1998 Elsevier Science Ltd. All rights reserved
INTRODUCTION
Since its inception in 1990, the World Wide Web (WWW or Web) has quickly emerged as a powerful new tool for connecting people and information on a global scale. Built on broadly accepted protocols, the WWW removes incompatibilities between computer systems, resulting in an ``explosion of accessibility'' [1, 2]. In the educational community, these advantages are being utilized to enhance the teaching process and increase students' involvement in the learning experience. Numerous materials, ranging from class notes, syllabi and announcements, to software tutorials, to complex edutainment games, are now available [3±5]. Web browsers, which provide a consistent and user-friendly interface to the WWW, are now common in educational institutions, giving students easy access to these materials from any type of computer. Images, audio, video, and three-dimensional worlds enrich hypertext pages, the medium of the WWW, providing multi-media capabilities which both reinforce the learning experience and promote retention. In the last year, the utility of the WWW has been raised to a new level by the introduction of browsers which support mobile code: programs which can be transmitted across a network and executed on the receiving computer. With mobile code, the interactive capabilities of traditional desktop applications can be brought to the static world of the WWW. Highly interactive and graphical operations, limited by communications overhead in the WWW's client-server architecture, can now be performed in real-time from the browser. Furthermore, the use of mobile code reduces versioning and distribution problems common to traditional binary executables. The platform-independent nature of both mobile code and the WWW make it possible to develop, maintain and distribute a single version of an application from a Web server instead of multiple versions for each computer architecture and operating system combination. These bene®ts, combined with the pervasiveness of the WWW, have led to the development of several programming languages which can be used to produce mobile code [6±9]. The most well known and widely supported is Java2, developed by Sun Microsystems Inc. [10]. 183
184
J. A. Reed and A. A. Afjeh
Originally designed for embedded logic control in electronic devices, Java has found success on the WWW due to its capability as an ideal environment for the development of secure, distributed, network-based, interactive applications which run on a variety of computer platforms. Java mobile code, called an applet, is distributed by embedding it in a Web page and placing it on a Web server. When the page is accessed from a Java-enabled Web browser, such as Netscape Navigator2 or Microsoft Internet Explorer2, the applet is downloaded with the page to the client where it is executed. The Java run-time system, which is incorporated within the browser, provides an extensive set of classes, arranged in packages, which provide desired applet functionality. For example, the run-time system provides packages for creating graphical userinterfaces, handling input and output, displaying animation and playing audio clips. Applets can utilize the Java run-time system's networking packages to easily open URL (Uniform Resource Locator) connections to objects on the Web, or create distributed client-server systems using Socket resources. The run-time system also implements security checks to protect against malicious applets. In addition, browser security currently restricts applets which load from machines on the network from implementing certain functions such as reading, writing or modifying ®les on the local (client) machine. This non-secure state is indicated by the ``Unsigned Java Applet Window'' message displayed in the bottom of any applet graphical window (see any of the ®gures in this paper for an example). Although these restrictions currently make Java applets less useful than desired, it is expected that such security will be relaxed or a secure method of identi®cation will be implemented to allow applets to access the local machine. The ability to construct interactive, graphical programs which are easily distributed across the WWW make Java of considerable interest to educational software developers. With Java it is possible, for example, to enhance courseware through animation, present virtual lab exercises, or develop and distribute tutorials as easily as distributing more traditional static Web pages. The educational community has been quick to investigate this potential: in the short period since Java's release, over 800 educational applets have already been developed. At the time of this writing, over 100 engineering-speci®c educational applets have been listed at Gamelan [11], the ocial directory for Java applets. These applets cover topics in all engineering disciplines and, although the majority of these are relatively simple and problem-speci®c, several sophisticated applets have been developed which demonstrate the potential of using Java to develop educational software. For example, applets have been created which: demonstrate two-dimensional implementation of computational ¯uid dynamics, including visualization of ¯ow over solid objects [12]; provide an interactive graphical environment to build and test digital circuits [13]; allow students to create and visualize ideal ¯ow [14]; and permit students to investigate mechanical design of supported beams using an interactive and con®gurable interface [15]. In this paper we demonstrate the utility of Java as a powerful tool to develop interactive educational software by describing the design and implementation of the Java Gas Turbine Simulator, a Java applet which is to be used as an aid for instructing graduate and undergraduate students in gas turbine operation. The Java Gas Turbine Simulator is aimed at providing an easily accessible, integrated environment which more eectively illustrates to students the operation of the gas turbine engine. We believe that this paper will be useful to readers who are interested in using Java to develop easily distributed, interactive educational software, and educators interested in using computer simulation tools such as the Java Gas Turbine Simulator to teach gas turbine or jet engine operation. GAS TURBINE SIMULATION IN THE CLASSROOM
The gas turbine engine is a complex, dynamic system whose analysis involves the application of a variety of engineering disciplines including thermodynamics, ¯uid dynamics, heat transfer, mechanics and dynamics. To make the study of gas turbine operation more accessible to students, a simpli®ed model of the system is usually developed. In the traditional approach, the gas turbine engine is decomposed into its separate constituent components (inlet, compressor, combustor, turbine, shaft, nozzle, etc.) and mathematical equations are developed for each component through the use of the conservative laws of aero- and thermodynamics. The student then uses these equations to explore component operation; for example, how shock dynamics aect
Developing interactive educational engineering software
185
inlet and nozzle performance, or determination of power transfer rates and eciencies in compressors and turbines. While the decomposition of the engine allows the student to more easily analyze and comprehend individual component operation, an understanding of how these components interact to function as a complete engine is also important. The process of determining an engine's overall operating characteristics, such as thrust or power generated, speci®c fuel consumption, or the unsteady o-design compressor-turbine energy balance, however, can be involved. The strongly coupled nature of the component's ¯ow physics result in an often large, non-linear system of equations which may require considerable eort to solve. Consequently, computer software for simulating gas turbine engine operation are usually provided to reduce the amount of hand-calculations performed by the student in such assignments. The use of computers in propulsion engineering education is a relatively recent development. Earlier eorts (see for example [16, 17]) eectively minimize time spent performing calculations but are often underutilized due to their prescribed user-interfaces and static engine models. These packages typically use character-based, non-event-driven interfaces which provide limited interaction with the student and dictate sequential execution of commands. The student is required to follow and respond to queries from the program by entering data from the keyboard while computed engine performance is presented in terms of tables of numerical data. Furthermore, these packages allow the student to select only from a small number of pre-established engine con®gurations and analyze only steady-state on- and o-design operation. More recent eorts have improved interaction between software and student through the addition of graphical user interfaces (GUIs) [18±20]. By creating visual images of the simulation and results, GUIs allow the software to communicate complex data and concepts to the student more eectively. Event-driven graphical user interfaces also allow the student to maintain control over program execution, providing greater ¯exibility and freedom to explore the propulsion aspects of the problem without software limitation. The turbofan engine system simulator (TESS) [21], developed by the authors, provides a rich graphical interface for simulating gas turbine engines but uses a more complex engine model which allows students to perform both steady-state and unsteady engine simulation. In addition, TESS diers from the previously mentioned codes in that it uses object-based programming techniques to provide arbitrary engine con®guration capability. The Java Gas Turbine Simulator continues the progress made in gas turbine educational software and extends its application to platform-independent distribution via the WWW. JAVA GAS TURBINE SIMULATOR
The Java Gas Turbine Simulator applet provides an interactive graphical environment which allows the rapid, ecient construction and analysis of arbitrary gas turbine systems. The simulation system couples a graphical user interface and a transient, space averaged, aero-thermodynamic gas turbine analysis method both entirely coded in the Java language. The combined package provides analytical, graphical and data management tools which allow the student to construct and control dynamic gas turbine simulations by manipulating graphical objects on the computer display screen. The simulator, running as a Java applet, can be easily accessed from the World Wide Web and run from a variety of heterogeneous computer platforms, including PCs, Macintosh2, and UNIX2 machines, through the use of Java-enabled Web browsers. Gas turbine analysis model The foundation of any simulation system is the analysis model which represents mathematically the physical system being simulated. The gas turbine analysis model used in the Java Gas Turbine Simulator is derived from the NASA DIGTEM code [22]. A more detailed description of the model can be found in [23]. In this model, the gas turbine system is decomposed into its individual components: inlet, compressor, combustor, turbine, nozzle, bleed duct connecting duct, and rotating shaft. Intercomponent mixing volumes are used to connect two successive components as well as de®ne temperature and pressure at component boundaries. Operation of each of the components is described by the equations of aero-thermodynamics which are space averaged to provide a lumped-parameter model for each component. For dynamic (transient)
186
J. A. Reed and A. A. Afjeh
gas turbine operation, the model includes the unsteady equations for ¯uid momentum in connecting ducts, inertia in rotating shafts, and mass and energy storage in intercomponent mixing volumes. Overall performance maps are used to provide accurate steady-state representations of compressor and turbine component operation. Variable geometry eects in the compressor are accounted for using baseline maps that correspond to nominally scheduled geometry. Variable geometry maps are then used to bias the baseline map outputs by functions of the actual geometry. One bene®t of using Java to develop simulation programs is that it is a fully object oriented language [24]. Object oriented programming simpli®es the development of simulation systems, fostering software designs which are more general, robust, and easier to maintain and enhance than previous design approaches. Java oers many of the necessary object oriented features such as data abstraction, encapsulation, polymorphism, and inheritance found in other more established programming languages such as Smalltalk and C++ [25, 26]. Java is syntactically similar to C++, currently the most popular OO language, however, it is designed to be simpler to learn than C++, removing many of C++'s shortcomings which make it complex and confusing. In addition, Java adds many of the better object oriented features available in other object oriented languages which are missing in C++. The most notable enhancements are the elimination of pointer arithmetic, and the addition of automatic memory management (garbage collection). In object oriented programming, the physical system is decomposed into separate constituent objects which are then mapped to the compuational domain. This approach follows very well with the decomposition of the gas turbine engine described previously. In the Java Gas Turbine Simulator, each of the engine components listed above are represented as objects in the simulator. Each component's characteristics, such as its data (e.g., performance maps) and methods (e.g., the mathematical equations used to describe its operation) are encapsulated within each object. The object oriented nature of the Java language allows the program to model any gas turbine engine by combining speci®ed types of component objects in almost any order. Currently, the following engine component types are available: AeroMixingVolume, BleedDuct, BleedCooledTurbine, Combustor, Environment, FuelSource, Nozzle, RotorShaft, StoredMassDuct, and VariableCompressor. When these individual components are combined to form a gas turbine engine model, each AeroMixingVolume, RotorShaft, and StoredMassDuct contributes its respective unsteady equation to form a system of unsteady ordinary dierential equations. This system may then be solved using standard numerically techniques such as Newton±Raphson, Runge±Kutta, etc. In the Java Gas Turbine Simulator, the process of combining components to form a gas turbine model is performed graphically by the student. Several numerical solvers are built into the system and can easily be selected by the student to solve the system of equations. This process will be illustrated in more detail in the next section. CONDUCTING A SIMULATION
Students begin a simulation by using a Java-enabled Web browser to connect to the Java gas turbine simulator Web page located on the University of Toledo Mechanical, Industrial & Manufacturing Engineering Department Web server [27]. This page, shown in Fig. 1, contains the embedded Java Gas Turbine Simulator applet. In addition to the applet, the student may access additional information about the simulator using the hypertext links in the Web page. These links include access to a Java Gas Turbine Simulator tutorial, other publications on the simulator and related subjects, and information on the development of the Java Gas Turbine Simulator. Pressing the ``Display simulator'' button, located within the Web page, initiates the downloading of the applet, where it is executed using the browser's Java interpreter. Java is an interpreted language system. Unlike traditional programming languages, such as C, FORTRAN, or C++, in which the source code is compiled into machine speci®c executables, Java source code is compiled into byte codes. These byte codes are an architecturally neutral, intermediate format which permits a compiled Java program to be transported to computer platforms having dierent hardware and software architectures. The Java virtual machine (JVM),
Developing interactive educational engineering software
187
Fig. 1. Web browser showing Java gas turbine simulator Web page and applet Main window.
which is comprised of the Java interpreter and run-time system of classes, interprets the byte code instructions and directs the computer to perform the appropriate action. When the loading is completed, the Java Gas Turbine Simulator's Main window (see Fig. 1) is displayed on the computer screen. From the Main window the student can access the various windows of the simulation system: Engine Schematic Layout, System Control Dialog, Graphing, Transcript and Help. Selecting the Exit button closes all opened windows except Main which is closed by selecting the ``Dispose simulator'' button. The graphics and windowing components which make up the Java Gas Turbine Simulator user interface are built using the Java abstract window toolkit (AWT) [28]. The AWT is an integral part of the Java run-time system and provides a collection of platform-independent components for building graphical applications using Java. The AWT oers support for drawing and image operations, as well as supplying common graphical user interface objects such as Buttons, Lists, TextFields, Choice boxes, etc. Platform independence is achieved through the use of peers which are native GUI components manipulated by the AWT. Peers allow Java programs that use the AWT to retain the familiar look and feel of the host computer's native windowing system. Consequently, when a Java program is run on a Macintosh computer, the Buttons, Windows, List boxes, etc., all appear in the familiar Macintosh style. When the same program is run on a computer running Windows NT2, those same windowing components will appear as Window NT-style objects. The ®gures in this paper illustrate this concept. The Java Gas Turbine Simulator was run on several dierent computer platforms using the Netscape Navigator browser; color images of the various windows were captured and are reproduced here in black and white. Figures 1, 2, 7 and 9 are Motif2 graphics; Figs 3, 4 and 6 are Windows NT style; and Figs 5 and 8 are Macintosh style. Visual construction of the engine model A gas turbine engine simulation model is developed visually by building a schematic representation of the gas turbine in the Engine Schematic Layout window (see Fig. 2). Individual engine
Fig. 2. Engine Schematic Layout window.
Fig. 3. VariableCompressor Dialog window.
Fig. 4. Transient Control Schedule window.
Developing interactive educational engineering software
189
Fig. 5. Graph Controller Dialog window.
Fig. 6. Temperature and pressure transient graph window.
Fig. 7. System Control Dialog window.
components are represented graphically as icons with each class of engine component (e.g., BleedDuct, VariableCompressor, etc.) having a uniquely shaped and colored graphical representation. Graphical abstraction of the underlying engine model objects provide a powerful design approach which allows students to easily construct entirely arbitrary engine systems. The student selects engine components to add to the model from the Components menu located in the
190
J. A. Reed and A. A. Afjeh
Fig. 8. Transcript window.
Engine Schematic Layout menu bar. When a component is created, an icon is displayed in the work area. Additional engine components are added as needed to complete the engine model. Once all of the icons have been placed on the schematic work area, they may be dragged into place and interconnected to create the engine schematic diagram. In the diagram, the arrowheaded connecting lines represent both the directional ¯ow path for ¯uid through the engine, and the structural connections along which mechanical energy is transmitted. Figure 2 shows the Engine Schematic Layout window with a typical gas turbine engine model. Additionally, the student can load pre-existing engine models from the Examples menu. Engine component dialogs Each engine component added to the Engine Schematic Layout window is associated with a dialog window which provides the student with the means to de®ne the operational characteristics of the component (i.e., the component name, design and initial operating point performance data, etc.). For example, Fig. 3 shows the dialog window for a VariableCompressor component. Similar dialogs, with appropriate design and operating point parameters, are available for each of the other engine components. In several components, the mathematical model allows the user to vary one or more parameters with respect to time. These transient control parameters, such as stator angle in the VariableCompressor, fuel mass ¯ow rate in the FuelSource, and cross-sectional area in the Nozzle, are used as open-loop controls during the transient portion of the simulation. Transient Control Schedules, which are simply a set of one or more time parameter value pairs, describe how the parameter varies during the transient and are de®ned by the student for each transient control parameter from a component's Transient Control Schedule Dialog window. Figure 4 shows the Transient Control Schedule Dialog for a
Fig. 9. Help browser window.
Developing interactive educational engineering software
191
FuelSource component. Time-parameter value pairs are created by entering values in the Time (seconds) and Transient Value TextFields on the lower left-hand side of the dialog, and then pressing the Add Point button. The newly added data pair is then displayed in the List immediately to the right of the TextFields. Additional data pairs may be added as the student desires. In addition to text-based representation in the List, the pair values are displayed graphically in the upper portion of the dialog. Linear interpolation is used to de®ne the parameters between time value pairs and this is re¯ected by the graphical display. Data pairs may be deleted by selecting them in the List and pressing the Delete Selected Point button. Any changes to the List are immediately re¯ected in the graph. A Reset button allows the student to reset the data to the previously de®ned values. Graphing For insight into the physical processes occurring in the gas turbine, the student may select to plot various component parameters during the transient. Pressing the Graphing button on the Main window displays the Graph Control Dialog (see Fig. 5). As its name suggests, this dialog provides the student with control over parameters to be graphed during the transient portion of the simulation. From this dialog the student may select to graph a number of speci®ed parameters for any of the components currently displayed in the Engine Schematic Layout window. The Graph Control Dialog is comprised of two List components. The left-hand List displays each of the engine components currently displayed in the Engine Schematic Layout window. The right-hand List displays parameters to be graphed for the selected engine component. This List allows multiple selections, allowing the student to select to graph any or all of the component's parameters. To illustrate its use, consider the following example as depicted in Figs 5 and 6. Here the student has selected the component named MV13. This component is an AeroMixingVolume object and as such has graph parameters of Volume, Stored Mass, Temperature, etc., which are shown in the right-hand List. From that List, the student has selected to graph the Temperature and Pressure parameters during the transient. Figure 6 shows the Temperature and Pressure graphing windows which are displayed during the transient. Note that the student has also selected to graph the Temperature and Pressure parameters of the MV3, MV4, MV41, MV6 and MV7 AeroMixingVolume components for comparison. The Graph Control Dialog may also be used after a simulation to view other parameters not graphed during the simulation. The Graph Control Dialog object acts as a database for each of the parameters listed in the Graph Control Dialog window, and as such acts as a post-processor, displaying each of the listed parameters after the simulation has completed. Selecting numerical solvers Once all the gas turbine engine components have been connected and their input data entered, the student may de®ne the system solvers and transient duration. In a transient analysis, the gas turbine system is ®rst settled (balanced) at or near the user-de®ned initial operating point before beginning the transient. Currently, two steady-state balancing methods are implemented: Newton-Raphson and Fourth-order Runge-Kutta. Four transient integration methods are available: Improved Euler, Fourth-order RungeKutta, Adams, and Gear. The System Control Dialog window (see Fig. 7), which provides controls for the overall operation of the simulation, is accessed by depressing the System Controllers button in the Main window (see Fig. 1). The steady-state numerical solver used to balance the gas turbine equations at the initial operating point is selected from a list of available solvers. This list is displayed using a Choice component which shows the current list selection. In Fig. 7, the Newton-Raphson method has been selected as the steady-state solver. Similarly, the transient solver may be selected from the list of available transient solvers. In Fig. 7, the Improved Euler method has been selected. The student may edit either of the selected solver's parameters by depressing the steady-state or transient Edit Configuration buttons. This displays a Transient Solver Dialog with which the student can de®ne speci®c con-
192
J. A. Reed and A. A. Afjeh
trol values for the solver's operation. Additional Transient Solver Dialogs are available for each of the available solvers and selecting a dierent solver from the list will bring up dierent control parameters speci®c to the newly selected solver. Below both the steady state and transient solver selectors are the steady state and transient Progress Indicators. These indicators act as gauges which provide visual feedback to the user during the simulation indicating the progress of the steady-state balancing or transient integration processes. The steady-state progress indicator displays the number of equations which have converged to steady-state. The transient progress indicator displays the elapsed time of the transient. For example, in Fig. 7 the Converged Equations Progress Indicator shows that all 16 of the system equations have converged, and that, as shown by the Elapsed Time progress indicator, the transient simulation has progressed to 0.6 of a 2.5 seconds-long transient. Running the simulation The simulation is started by pressing the Run Simulation button located in the System Control Dialog window. The simulator ®rst attempts to determine the steady state (balanced) condition at the initial operating point, as was de®ned by the student. Once the engine is balanced, the transient will begin. (If the student has de®ned a simulation ending time of zero in the System Control Dialog, the simulation will terminate giving only a steady state solution.) The transient will run until the simulation time exceeds the Simulation Duration value entered in the System Control Dialog. As the simulation executes, the transient graph windows display the engine parameter values with updates being made at each time step. Also, as indicated previously, the steady state and transient progress indicators provide feedback on the progress of the simulation. In addition to these visual messages, text-based messages and status reports may be displayed in the Transcript window (see Fig. 8) during the simulation. The transcript window also provides a method for saving numerical simulation results in the absence of ®le writing capability (due to security restrictions); simulation data output to the transcript can be cut and pasted to a local ®le and then printed. On-line help browser The student may obtain additional information about the simulator by selecting the Help button from the Main window, or from the menu bar in other windows. The Help browser (see Fig. 9) provides hypertext access to on-line documentation located on the Web server using Java's built in support for WWW network access. From the browser the student may access hypertext documents which describe the analysis theory used in the simulator, tutorials, and references which the student can use for further study. Another use of the Help browser is to provide student ``examinations''. Instructors can easily create hypertext ®les which contain questions (and answers) about gas turbine operation. Because the ®le is centrally located on the Web server, there is only one ®le to edit, ensuring that all students have the same questions and simplifying the update process. Although not implemented at this time, it is possible to create interactive forms which could be used to collect student responses for on-line grading. CONCLUSION
The Java Gas Turbine Simulator provides an improved computer simulation environment for instructing students in gas turbine operation. As a Java applet, the simulator provides advantages over traditional desktop-based computer simulation programs by allowing students access from any networked computer. This, combined with freely available Java-enabled Web browsers operating on all major computing platforms, make the simulator widely accessible. The portability oered by the Java language and the platform independence of the AWT make Java an ideal language and run-time system for developing interactive educational software for use on networked, heterogeneous computer systems such as the World Wide Web. The Java Gas Turbine Simulator provides an additional bene®t over traditional static gas turbine computer programs by allowing students to visually construct gas turbine modelsÐa
Developing interactive educational engineering software
193
process which enhances the students appreciation of how a gas turbine is constructed. In addition, allowing the student to de®ne the various engine component parameters aids in the identi®cation of (1) information needed to carry out the simulation, and (2) variables that in¯uence a component's performance. Moreover, it depicts how the governing equations are applied. Finally, simulation output in a visual format helps improve the student's understanding of how gas turbine components interact and how their parameters change during a transient. For example, in the example simulation shown in the previous ®gures, the combustor fuel ¯ow is increased linearly (see Fig. 4). However, the eect on the engine is a non-linear increase in engine parameter values such as temperature and pressure (see Fig. 6). This relationship is not immediately evident from either the governing equations or text-based simulation output, but is made clear when presented in graphical form. This work also illustrates how programs written in Java address two common problem areas in educational software: (1) maintaining specialized software in a multi-platform environment, and (2) software distribution. Universities, as well as students, often utilize a wide variety of computing platforms including PCs, Macintosh, and Unix computers. Until now it has been dif®cult and costly to provide and maintain specialized versions of a given program for each platform. As hardware and operating systems are upgraded, the software must be updated and reinstalled. As a result, in most cases, a program for a speci®c platform is presented and the student is forced to work on that type of computer. The platform independent nature of the Java program and wide availability of Java-enabled browsers reduce the need for specialized versions of software as a Java program will run on any of the major platforms. The process of software distribution is also simpli®ed as the Java program may be delivered easily across the WWW directly to the student's computer. There is no need to install the software, since Java programs are loaded automatically upon being downloaded to the student's computer. Finally, many other engineering problems such as thermodynamics, ¯uid dynamics, heat transfer, etc., lend themselves to being analyzed using an approach such as described in this paper. AcknowledgementsÐWe would like to acknowledge the NASA Lewis Research Center Computing and Interdisciplinary Systems Oce for partial support of this work (Grant No. NCC-3-207). Special thanks to Greg Follen for his continued support.
REFERENCES 1. Berners-Lee, T., WWW: past, present, and future, Computer, 1996, 29(10), 69. 2. Schatz, B. R. and Hardin, J. B., NCSA Mosaic and the World Wide Web: global hypermedia protocols for the Internet, Science, 1994, 265, 895. 3. The Virtual Media Lab. On-line document, URL: http://philae.sas.upenn.edu/. 4. The Synthesis Coalition. On-line document, URL: http://synthesis.stanford.edu/. 5. Perrone, C., Clark, D. and Reppenning, A., WebQuest: substantiating education in edutainment through interactive learning games, Computer Networks and ISDN Systems, 1996, 28, 1307. 6. Cardelli, L., Obliq: a language with distributed scope. Research Report 122. Digital Equipment Corporation Systems Research Center, Palo Alto, CA. On-line document URL: http://gatekeeper.dec.com/pub/DEC/SRC/researchreports/abstracts/src-rr-122.html, 1994. 7. Watters, A., van Rossum, G. and Ahlstrom, J., Internet Programming with Python, MIS Press/Henry Holt Publishers, 1996. 8. Wirth, N. and Gutknecht, J., The Oberon system, Software: Updated Practice and Experience, 1989, 19, 857. 9. Smith, R. B. and Ungar, D., Programming as an experience: the inspiration for Self. In Proc. ECOOP '95. 1995. 10. Gosling, J., Joy, B. and Steele, G., The Java Programming Language (version 1.0), Addison Wesley Longman, 1996. 11. Gamelan: The ocial directory for Java. On-line document, URL: http://www.gamelan.com/. 12. The Java virtual wind tunnel applet. On-line document, URL: http://raphael.mit.edu/Java/. 13. The Digital Simulator applet. On-line document, URL: http://www.lookup.com/Homepages/96457/digsim/load.html. 14. The Ideal Flow machine ideal ¯ow mapper applets. On-line document, URL: http://www.aoe.vt.edu/aoe/faculty/ davenfac.html. 15. The Java Beam applet. On-line document, URL: http://ecsel.engr.washington.edu/JavaBeam/beams/simpleSupport. html. 16. Mattingly, J. D., Heiser, W. H. and Daley, D. H., Aircraft Engine Design, AIAA Education Series, Washington, DC, 1987. 17. Koening, K. and Hodge, B. K., A suite of personal computer programs to support propulsion Education. AIAA paper 93-2052, 1993. 18. Benson, T. J., An interactive educational tool for turbojet engines. AIAA paper 95-3055, 1995. 19. Benson, T. J., An interactive educational tool for turbofan and afterburning turbojet engines. AIAA paper 96-2561, 1996. 20. Torella, G., User-friendly codes for design of gas turbine engines. AIAA paper 96-2562, 1996.
194
J. A. Reed and A. A. Afjeh
21. Reed, J. A. and Afjeh, A. A., An interactive graphical simulation environment for the study of gas turbine operation. AIAA paper 96-2563, 1996. 22. Daniele, C. J., Krosel, S. M., Szuch, J. R. and Westerkamp, E. J., Digital computer program for generating dynamic engine models (DIGTEM), NASA TM-83446, 1983. 23. Reed, J. 1993. Development of an interactive graphical aircraft propulsion system simulator. Master of Science Thesis, The University of Toledo, Toledo, OH. 24. Booch, G., Object Oriented Design with Applications. The Benjamin/Cummings Publishing Company, Inc., New York, NY, 1991. 25. Goldberg, A. and Robson, D., Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1985. 26. Stroustrup, B., The C++ Programming Language, Addison-Wesley, New York, 1991. 27. The Java gas turbine simulator applet. On-line document, URL: http://www-mime.eng.utoledo.edu/research/thermalsciences/jet_engine_simulation/jgts/JavaGasTurbineSimulator.html. 28. Gosling, J. and Yellin, F., The Java Application Programming Interface: Window Toolkit and Applets, Addison Wesley, 1996.