How can students learn about abstraction by creating a movie scene? Or make an interactive map using lists? You'll learn (and do it yourself) in this course! This class teaches the concepts of abstraction (methods and parameters) and lists. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with abstraction and lists in a way that keeps frustration at a minimum. Along the way you will learn about the common challenges or "bugs" students have with these concepts as well as ways to help them find and fix those concepts. You'll also be guided in running classroom discussions to help students develop deeper understanding of these concepts. Finally, you'll learn about the importance and logistics of assigning creative, student-designed programming projects. Additionally, you will create a personal plan for increasing your skills in supporting a culturally responsive learning environment in your classroom.