Introduction Active Learning and the Active-Learning-Based Teaching Model Overview of the Discipline of Computer Science Research in Computer Science Education Problem Solving Strategies Learners' Alternative Conceptions Teaching Methods in Computer Science Education Lab-Based Teaching Types of Questions in Computer Science Education Evaluation Teaching Planning Integrated View at the MTCS Course The Case of Recursion Getting Experience in Computer Science Education Design of a Methods of Teaching Computer Science Course High School Computer Science Teacher Preparation Programs Epilogue