In recent years, an important paradigm shift has occurred in programming education, and it has been adopted that high-level thinking skills can be gained by giving programming education. In other words, it has been realized that in addition to raising programmers, high-level thinking skills of individuals can be improved by giving programming education. For this reason, it has been accepted by many countries that it is not possible for programming education to be limited to vocational technical education and engineering education, and that this education should be given to individuals at an earlier age. In this book, it has been tried to discuss all aspects of programming for students who receive this education at an early age, with which tools, which approaches, which skills should be planned, how the education should be implemented and how it should be evaluated at the end of the education. In addition, sample teaching designs have been tried to be presented in the necessary sections. We hope that the book will contribute to our colleagues who teach programming or do academic studies in this field, our graduate students, teachers and teacher candidates.