Studies have shown that the main difficulty faced in learning to program is related to planning rather than language structures. As possible solution to address this difficulty, this book describes an investigation into the effects of fostering a meta-schema for program design for novice programmers. A study was conducted in an introductory programming course with two groups of students. The experimental group was taught about a design strategy and special emphasis was put on design visualization. For the control group conventional teaching was applied. Also in the following lab assignment, design was emphasized for the experimental group. Analysis of the program code and the documentation of the students indicates the intervention did not influence the correctness of the programs. However, it had a positive effect on problem decomposition. Furthermore, it is observed that students have problems with effectively applying language structures. An ideal curriculum for programming would therefore foster the development of both meta-schemas (e.g. design strategy and visualization) and specialized design schemas (e.g. best practices in applying data structures and control structures).