I've taught computer science for 30 years. I have extensive experience in curriculum design and implementation. My resources have taken students from introductory programming to Advanced Placement success! My computer programming team had over 100 students from grades 9 to 12 and we regularly made it to the provincial finals. During the last few years I have had 90+ students write the Waterloo Computing Competition (CCC). On the computer engineering side, I designed the curriculum for an introductory engineering course and I also ran a FIRST robotics team for 5 years.
I have taught using differentiated instruction in a flipped classroom model long before either of them were buzzwords. Never give answers - only ask more questions! Students need to get there under their own steam otherwise they haven't earned the knowledge and it won't stick! You can't learn how to drive a car in a classroom. You need to be behind the wheel and experience the reality and then try to analyze what you did. The point of programming is to use it as a tool to help students learn how to learn. The language is just the vehicle.
The second year of our participation in FIRST Robotics we won Canada and advanced to the final championships in Houston Texas. Two of my CCC students made it to the University of Waterloo to participate in the Canadian Computing Olympiad and one of them made it onto the IOC team that competed in Thailand.
I have a Bachelor of Education and a Bachelor of Fine Arts. I taught myself how to program and as a result of my own journey I understand how students learn programming.
I have been a certified Advanced Placement teacher for over twenty years in Java as well as C.