I believe the best way to grow Computer Science is to stop treating it like a single subject and start treating it like a skill set that applies everywhere. I focus on offering multiple introductory pathways - like Game Dev, Web Design, and robotics - to 'cast a wider net' and get students in the door. In providing multiple doors of entry, I'm more likely to get "the right person in the right class for the right reason" and less likely to get students that didn't want to be there in the first place. Once they're there, I use those fun topics to trick them into learning the hard stuff: logic, resilience, and problem-solving.
My pedagogy is founded on the principle of 'Broadening Computer Science'—the belief that we must replace the single, intimidating gateway to the field with multiple, high-interest entry points like Game Design, Web Development, App Development, Robotics, Cybersecurity, AI, Microcontrollers, Microcomputers, and E-Textiles. By casting a wider net, I can attract a diverse range of students who might otherwise believe CS isn't 'for them.'
Once students are in the classroom, I operate on a 'volition-first' philosophy: I believe any student who brings curiosity and effort can succeed, regardless of innate 'talent' (whereas apathy - not caring - is the largest barrier to student success). I utilize front-loaded instruction to establish foundational tools, followed by guided inquiry where I act as a facilitator to help students debug their own logic. My ultimate goal is to use these specific interests (like games or apps) as a vehicle to teach the universal, transferable skill of problem-solving.
I sit firmly in the middle of "Sage on the Stage" and "Free-Range facilitator". I aim to help students learn in several different ways, but often default to direct instruction or just-in-time learning.
I believe in the reality of the work (it's hard, it requires effort) and I prioritize function over form. I am less concerned with "beautiful code" and more concerned with "working solutions" and the mental toughness required to get there.
I reject the idea that Computer Science is reserved for "geniuses".
I also reject the idea that Computer Science is easy.
My philosophy is grounded in Agency. I distinguish between cognitive barriers and motivational barriers.
Key Mantra, which I've stolen from others, is "I can fix 'I don't know'; I can't fix 'I don't care'".
I favor Front-Loaded Instruction to give students the tools, but my support structure is Socratic. When a student fails, I will not fix it for them; I use their code to walk them through until they spot the error. I value the process of debugging as much as the code itself and often try using "Rubber Duck Debugging" to help students find the code on their own, simply acting as a listening agent.
Mistakes happen in code (bugs) all the time, but can you identify the bugs and solve the problems, even if it requires a second pair of eyes?
Key Mantra: "The answer is less important than the ability to find the answer."
I believe that "Computer Science" is too abstract a term for many teenagers. To get them in the door, I must anchor the subject in their existing interests. By offering distinct pathways (Game Dev, Web Dev, App Dev, robotics), I am validating their interests and using them as the "hook" to teach the harder, universal concepts of logic and problem-solving.
Key Mantra: "Broaden Computer Science - More doors in = higher likelihood of diverse & interested students"