The user can add commands to shape as well as box or circle, and see the actions. Polymorphism Not certain about how to teach this. Maybe have a slot that can be filled with some type of object, and show how it works even if it is a circle, triangle, or whatever. This is inspired by thinglab, an early Smalltalk system back in the mid 1980's. You have a window divided into a small palette and a larger playing area.
Objects have properties.
Once in the playing area, you can click on an object to change its properties. A ball has mass, elasticity, direction, size, etc. Objects interact with all other objects in the playing area. For example, you can create a ball and a set of walls, and put the ball in motion so it bounces around the walls, absorbing energy until it stops. Of you can create two balls with a lot of mass and set them moving, and they will capture each other in their gravitational attraction and start circling each other.