Jargon/Vocab about variables--- yes or no? In my experience (working with college freshmen mostly), I've tried to emphasize precise vocabulary about the concepts and syntax related to creating and changing variables. This is wording like:


identifier
declare
initialize
assignment
token
execute
compiler


My reasoning is that these words are immediately necessary to understand error messages, intermediately necessary to Google things, and necessary in the long term to communicate to other programmers.

However, some teachers I've talked to try to avoid this type of language because they feel it introduces another barrier to their students' understanding. I guess they'd say I'm trying to introduce compiler concepts too early.

What's your view? How do you know when there's too much jargon?
Some of these words are entirely necessary, some (such as tokenize) you might want to avoid early on.  However, I would suggest this as a guiding principle: use vocabulary as is necessary to get at the core goals you hold for your students, but do not emphasize vocabulary for its own sake.  A great visualization or metaphor at the very start (after all, freshmen!) will take your students much further along than a series of fine distinctions.

Here is a fun little article about 10 Extremely Precise Words for Emotions You Didn’t Even Know You Had.  The title is correct; when you read through the article, you will find emotions that you have experienced, but never described.  Nevertheless, you were able to experience the emotions perfectly fully. 

Similarly, with the help of a great diagram or metaphor, students will be able to utilize concepts that are more advanced than they can fully describe.  That's okay - great even! - and later coursework can help them nail down finer distinctions as they advance.