Why this book

I wrote this book for my wife, who is a physics and mathematics teacher in a French school where the students are between eleven and fifteen years old. She had to teach computer sciences and I decided to help her understanding key concepts in programming and teaching them. As a computer scientist, I was aware of work on the programming language Logo and that the programming language Smalltalk had been influenced by the ideas of Logo. I discovered that Smalltalk is a powerful language and has a simple syntax that mimics natural language and that it had originated from research on teaching programming to children. At about that time, the Squeak open-source multimedia Smalltalk had arrived at a mature state, and books started to become available in late 1999. But these were for experienced programmers, so I started and wrote the present book.

My goal is to explain key elementary programming concepts (such as loops, abstraction, composition, and conditionals) to novices of all ages. I believe that learning by experimenting and having fun solving problems is central to human knowledge acquisition. Therefore, I have presented programming concepts through simple but not trivial problems such as drawing golden rectangles or simulating animal behavior. The ideal reader I have in mind is an individual who wants to have fun programming. This person may be a teenager or an adult, a schoolteacher, or somebody teaching programming to children in some other organization. Such an individual does not have to be fluent in programming in any language. As a father of two young boys I also wrote this book for all the parents that want to have fun programming with their kids in a powerful interactive environment.