on 10 January 2010
This is the best example of a book that uses a graphical/game/simulation approach to learning to program that I have ever seen. It is very well written, the examples are great (there are some games, some simulations - planets and ants, some music), the explanations are clear, and every serious reader will learn *a lot* about programming.
I have read other books about learning environments (such as scratch or alice), and this is a little different. The programming language is Java, not some custom made toy language. This means that with Greenfoot and this book, you cannot start quite as young - I would say maybe 14 is a good starting age for this. But on the upside: man, this scales! You can really build fantastic real programs with this. This is not only for kids!
The fact that it is Java what drives this makes this usable all the way up to advanced university courses. Projects can be very simple (in the beginning), but they can also do real fascinating stuff. I loved the ant simulation in the book!
The system performs well, the book teaches real object-oriented programming in Java, and readers will learn a lot about OO programming.
It is amazing that a system that can do all that is so easy to learn in the beginning. The first few chapters are really playful, and you hardly notice all the stuff you're learning.
I guess this is a result of a brilliant system - Greenfoot - and a great pedagogy in the book. Easily five stars.
on 26 April 2015
Greenfoot is a Java-based language constructed from a set of objects with methods that can be imported into and modified in programs. In general the objects are designed to be used in simple games, demonstrations and simulations.
The goal is to teach object-oriented programming and that goal is met with one major caveat, the explanations of how the objects interact are often too abbreviated for easy comprehension. The reader has to know some basic programming, have knowledge of the programming basics such as function calls, the role of variables and what kind of data they contain and what it means for a function to be "void" or return a value.
For example, inheritance is a complex concept, far more nuanced than it appears in this book. Constructors and object passing via the this pointer are not simple concepts. Finally, some of the screenshots of class descriptions are often unreadable.
This is a book that can be used to teach the basics of object-oriented programming where the reader can really have some fun while learning. However, it is not an effective stand-alone educational device and a knowledgeable instructor will make the life of the user far more productive. . There is a reason why Java textbooks are hundreds of pages long, all of that is needed if you are going to use and understand the full power of the language.