I've realised the big advantage of teaching OO with physical analogies. It's well accepted that OO isn't just about modelling the eworld.
Physical items are great for explaining subtyping.
You can view types as subsets, and Ferrari <: Car <: Vehicle is intuitive.
Modelling foreign language learning in the Duolingo app by fitting a machine learning model! When you have millions of users you can measure recall effectiveness with a high degree of confidence:
Great post on how to use union types effectively:
https://robots.thoughtbot.com/modeling-with-union-types (has a lovely example of modelling a deck of cards: how do you handle suits and jokers?)