Learn to program with Inheritance and Recursion in Java, and prepare to teach others using the free, online interactive CS Awesome textbook. In this course for teachers we'll guide you both in learning Java concepts and skills but also in how to effectively teach those to your students. This course will support you in teaching the Advanced Placement Computer Science A course or a similar introductory university-level programming course. We'll cover the Java concepts of inheritance and recursion, as covered in the APCS A Units 9 and 10. Each topic will begin by relating Java to block-based programming languages and then provide video overviews of CS Awesome content along with additional materials to supplement learning for your students. You'll engage with additional materials to support your teaching including "deep dive" classroom discussion questions, assessment overviews, code tracing and problem solving skills for your students, including preparation for free response coding questions.