---Introduction---

The interest in playing with blocks is piling them or building something. While trying to make them stable or build up the shape which we imagined in our mind, we are repeating trial and error. Through this process, we can learn the characteristics of blocks.

Children discover many fundamental physical principles from playing with blocks. As Marvin Minsky wrote in his book The Society of Mind, children must keep discovering facts like independence of height and width, by just making a tower. Adults already know such matters as only-too-natural thing, so it is very difficult to obtain something new in blocks.

However, we can experience finding principles which we have never grasped before. When I first encountered programming, I had that kind of experience, even though I had used the computer with various applications. I had never thought about the processing which is done in the computer before, so it was impossible to imagine what is happening in computers.

My first impression of computer programming was the kind of feeling which I got from puzzle games and blocks. I remembered several simple commands, and combining them, to produce a result. Among those, I discovered the rules in the world of the program. Just like children obtain principles from building blocks, I found some rules of programming.

I think it is not easy for everyone to feel comfortable with the enumeration of letters, numbers and numerical formulas. I made 'drawing blocks' wishing to give an opportunity to experience 'finding principles'. That is why I used the metaphor of the building block, I thing which is familiar for everybody. Since I used Java language to make it, I can also say that 'drawing blocks' has become the basic model of the object-oriented way of programming.

We can know that complicated movements are made from the combination of simple movements. I hope users will perceive that every process in a computer is just a combination of simple commands and enjoy finding rules with fresh interest.