Elements Educational Demos
Physics is often used to describe a changing situation, but students learning physics are only given static images. The Elements project aims to bring a 2D interactive physics engine to the XO. Once ported, Elements can be used to bring a sense of reality to those learning physics. However, it is still in the process of being ported and needs demos and a friendly user interface. The idea is to design a user interface for Elements , as well as create demos that will be instructive to both those wanting to learn physics as well as those wanting to learn how to use Elements for their own needs.
When students first learn about physics, they tend to focus on equations and principles and end up forgetting that physics is meant to represent the real world. So, they end up claiming that objects "fall" away from the earth and that a ball rolling on the floor will speed up instead of slowing down. This may be caused, in part, by static images drawn to represent dynamic situations. These images can only represent a snapshot in time and, at best, offer a hint about what would happen next with arrows to indicate direction of motion. The demos created for Elements will provide an animation of the entire situation. Once the simple user interface has been designed, these situations can be placed within an educational framework that will present problems to the student and allow them to solve the problem intuitively instead of numerically.
 Summary & Description
The goals of the Elements Educational Demos project are to showcase Elements' abilities as a physics engine and its potential as a physics education tool.
 Potential as educational tool
The demos created will come from a combination of Box2D demos (Elements being built from Box2D) and various physics simulations online . Instead of trying to tackle all of physics, these demos will focus primarily on basic mechanics, taking advantage of the features Elements has to offer.
Two educational environments will then be developed. In one, the demos will be presented alongside a word problem, with the demo acting as an animated picture, replacing the static pictures that typically accompany problems. Space will be provided for the student to give a final answer and a hint button can reveal equations that will be useful in solving the problem.
However, the real power of Elements will emerge with the second environment. As mentioned in the Need section, students tend to lose focus of reality when they start dealing with equations. So, this second environment will do away with the standard word problem model presented in the first educational environment. Instead, it will present the demos as a series of tasks in a mini-game. To complete each task, the student will be asked build a structure using some of the tools available in Elements or manipulate part of the environment. They will draw on their intuitive understanding of physics to solve the problem without needing to use equations. This second environment was inspired by Crayon Physics.
 API Demos
For others to take advantage of Elements for their own needs, whether explicitly for physics education or otherwise, the code written to create the demos must also be informative. In other words, not only should a demo allow the student to explore a physics concept, but the code used to make the demo must be easy to understand and change for the needs of a developer learning about Elements.
To accomplish this, the code will be written to be easy to follow for someone just starting out with Elements. Comments will also be placed in the code to explain the reason for the flow of the code and the purpose behind function calls into the API. Each demo may also have an accompanying short tutorial so that someone new to Elements can learn how the demo was constructed, why code was written the way it was (expanding on the comments in the code). The tutorials may also contain digressions to explain what would have happened if the code was slightly different. Screenshots will also be included to help provide a visual explanation for what the code does.
 Use Case Scenario
 Educational Environment 1
- The student starts the activity and it loads the first problem not solved.
- It presents the question and demo on the screen, with a box for the answer.
- To start the demo, the student can press the Play button to play the animation once, or Play Continuous to play repeatedly until clicking the Stop or Pause buttons.
- To get a list of equations related to the problem, the student can click on the Hint button.
- Entering the answer in the Answer textbox and clicking the Check button will reveal whether the answer was right or wrong.
- Once the correct answer is entered, the activity will move on to the next problem.
 Educational Environment 2
- The student starts the activity and it loads a menu of adventures to play.
- The student selects a new adventure and it presents the background information for the adventure. For example, "An evil wizard has moved into the area and has stolen all of the children's balls. They're stored in a building five kilometers from here. You have been chosen to rescue the balls from the evil wizard." The student could also choose to continue from a saved adventure.
- Once the student finishes reading, he or she can click a button to proceed to the first task. Each task will have a short description of the problem to solve. For example, "In this task, you must build a catapult to throw boulders at the building to put a hole in the wall to let the balls out."
- Accompanying the description will be the demo representing the situation. In the case of the example, the demo would be a building with balls stored in it atop a hill (the hill is important in the next task). The area to build the catapult would be indicated in the demo also.
- Also on the screen will be a menu containing all of the building blocks that the student should use to build the catapult. These will relate to various features in Elements, such as blocks and joints.
- Once the task has been achieved, a screen will appear with a brief review of the physics concept needed to solve the problem. Then, it moves on to the next task.
 Implementation Details
- Graphics & UI: Elements (obviously) and PyGTK
- Answers: The answers to the questions from the first educational environment should be encrypted so the student can't just look up the answer. Nothing fancy will probably be needed, but plain text is probably not a good idea.
 Potential Extensions
- For the first educational environment, a workspace might be nice. It probably wouldn't fit on the screen with everything else, but maybe in a separate area.
- Instead of the workspace being a text editor, it could be a space to move equations around and plug them into each other graphically.
- Explore Elements' ability to represent other areas of physics.
- Use Elements to simulate experiments.
- More sophisticated help from the first environment.
- Change the animation based on equations/manipulations entered in the workspace. This could catch the "object falls away from the ground" problem mentioned above.
These extensions can be worked on after the summer of code project is finished.