A number of the design features of Logo were developed to facilitate this process. There is a strong emphasis on supporting the transition from the child's present state of knowledge to more abstract and formal understanding. Strong visual feedback is provided in the form of Turtle Graphics to enable the child to visualize the impact of the instructions they write. This in turn provides a basis for a learner-centred recognition and debugging of errors. Errors are treated not as 'mistakes' as in much formal computer science education, but rather as a natural and productive part of learning.
Logo provides an example of a general feature of constructivist approaches to education.
This is to provide rich resources to enable the construction of meaning by the learner. Built into this approach is the recognition of the need to support the learner in moving from their initial state of knowledge to more abstract levels of understanding. One product of this approach was the development of the concept of Microworlds. These enable learners to visualize the impact of the changes they make in a formal system such as a programming language. The CORE approach provides another constructivist inspired approach to the development of learning environments for programming.