"Computer science has emerged as a key driver of innovation in the 21st century. Preparing teachers to teach computer science, however, remains an enormous challenge as there are few highly qualified teachers who can teach computer science or integrate computer science content into K-12 curricula. To address this challenge, NSF established the CS10K program with the aim of preparing 10,000 teachers in 10,000 high schools teaching computer science curricula. While this effort is still under-way, there has not been a systematic attempt to capture the work done in this area. In order to prepare a generation of teachers who are capable of delivering computer science content to students, we must identify research-based examples, pedagogical strategies and policies that can facilitate changes in teacher knowledge and practices. The purpose of this project is to provide examples that could help guide the design and delivery of effective teacher preparation on the teaching of computer science concepts. This book identifies promising pathways, pedagogical strategies and policies that help pre-service and in-service teachers infuse computing ideas in their curricula as well as teach stand-alone computing courses. The book focuses on pedagogical practices for developing and assessing pre-service teacher knowledge of computer science, course design models for pre-service teachers, and discussion of policies that can support the teaching of computer science. The primary audience of the book will be students and faculty in educational technology, educational or cognitive psychology, learning theory, curriculum and instruction, computer science, instructional systems and learning sciences"--