When teaching Scala I wouldn't start with the jargon first -- start from the problem, show the solution, then name the patterns used. When teaching algebraic data types, for example, we start with more familiar OO terminology like "is-a" and "has-a", and then say we have this other name for these patterns.
To be clear, I have a horse in this race: I teach Scala (and have written a book on it, which you can find here: http://underscore.io/training/courses/essential-scala/). I also strongly believe Scala has been held back by poor teaching.
It depends on the country.
For example, in Portugal many companies do require a CS or EE degree, which means everyone has been exposed to those terms, at least if they enjoyed a degree in universities like IST, UNL/FCT, UC and similar.
Just as an example, back on my day, the Prolog and LP classes were shared between CS and EE degrees.
I get blank stares and even hostility sometimes from very competent engineers when I try to explain the Java type system is not the end-all be-all of type systems and that it is in fact... not all that powerful or particularly safe either.