User:Cleonis/Sandbox/EJS

Easy Java Simulations is an Open Source software tool, designed for the creation of discrete computer simulations.

A discrete computer simulation, or simply a computer simulation, is a computer program that tries to reproduce, for pedagogical or scientific purposes, a natural phenomenon through the visualization of the different states that it can have. Each of these states is described by a set of variables that change in time due to the iteration of a given algorithm.

In creating a simulation with the help of EJS, the user does not program the simulation at the level of writing code, instead the user is working at a higher conceptual level, declaring and organizing the equations and other mathematical expressions that operate the simulation. EJS handles the technical aspects of coding the simulation in the Java programming language, thus freeing the user to concentrate on the content of the simulation

The generated Java code can, in terms of efficiency and sophistication, be taken as the creation of a professional programmer. EJS is written in the Java programming language and the created simulation are in Java. Java Virtual Machines (JVM) are available for many different platforms; a platform for which a JVM is availabe can run Java programs. Java has the possibility of creating Java Applets, most browsers support Java Applets.

Because there is an educational value in the process of creating a simulation, EJS can also be used as a pedagogical tool itself. With it, teachers can ask their students to create a simulation by themselves, perhaps by following some guidelines which provided by the instructor. Used in this way, EJS can help students make their conceptualizations explicit. Used in groups, EJS can also improve the students abilities to discuss and communicate about science.

EJS divides creation of the simulation in the following three areas, dealing with them on separate panels.
 * Description
 * Model
 * View

The Description panel is for providing information about the content of the simulation.

The Model panel is for setting up the mathematics of the models; declaring variables, if necessary initialisation of the simulation, to write algorithms that describe how this model changes in time, and if necessary declare calculations for derived values that will be used in the View.

The third workpanel, View, is dedicated to the task of building the graphical user interface of the simulation, which allows final users to control the simulation and to display its output. The interface by selecting elements from palettes and adding them to the view’s Tree of elements. For example, the Interface palette contains buttons, sliders, and input fields and the 2D Drawables palette contains elements to plot 2D data.