Computational thinking is a fundamental skill for everyone, not just computer scientists. Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information processing agent. Teaching Computational Thinking introduces the fundamental principles of communicating computing to learners across all levels. The book delves into the philosophical and psychological foundations of computer science as a school subject as well as specific teaching methods, curriculum, tools, and research approaches in computing education. This book is intended as a guide and teaching companion for pre-service and in-service computer s...