On the evaluation of a problem solving and program development environment

When learning problem solving and program development, understanding programming (i.e. the syntax of a programming language) and implementation is only part of the picture. Developing the cognitive skills to comprehend and abstract the problem and its requirements, explore and transform the problem into a coherent form, design, develop and test the solution to the problem is the other part. To expect effective and efficient solutions to be produced, a considerable amount of important and creative work must be done before the program can be written. Students learning programming, using current tools, are accustomed to the entry point in any programming language environment being through the compiler's editor. As a result, when presented with a problem, students tend to reach for the keyboard and start the coding. This creates the impression that the formulation of the solution to the problem starts by writing the code, a habit that must be altered.