CodeHS
A great resource for learning and teaching Computer Science is CodeHS. Karel the dog will walk you through step by step as you learn on your own and/or prepare coursework for your students. CodeHS is targeted toward High School but is also a great resource for Middle School teachers introducing 8th graders to the Fundamentals of Computer Science. The material focuses on JavaScript, AP Computer Science in Java.