The dominant approaches for teaching of OO programming is currently not very successful. The students often learn imperative first/procedure first, where OO concepts are more in the background, and/or the students are drowned in implementation details or details of a ...