»sigh«
Yes. I do find it unreasonable (I'll explain why in a moment). You should never make assumptions about what someone does or doesn't already know. This is especially true when it's pertinent to the material that you're teaching.
They are not "assumptions." They are prerequisites. Look at the page you took your example from: what is the code supposed to do? It's an implementation of a power function. Are you saying that if I give you an assignment to write a program that implements a power function, I should not "assume" that you are familiar with what a power function is and the basic nomenclature of describing them? That's just silly talk.
It is perfectly acceptable to hold reasonable, domain-specific expectations of familiarity, and to leverage them within that limited context. Even when programming, we don't describe every routine from scratch; we leverage units that we have organized into functions and classes and methods and modules in order to both improve communicative density to other programmers and to improve machine performance (along the axis of code size).
This is my point of view: I do not find it appropriate to use naming brevity in this manner because it's based on an assumption that everyone else will know exactly what you mean (even without a comment). An individual's previous knowledge should be moot in the teacher's mind to some degree. That's why good instructors will briefly review Algebra, Trig, Geometry, etc. at the beginning of a Calculus course, as mine had in high school. It's because they don't want to assume your immortal knowledge of the subject, and then lose you later on because you're having trouble using the FOIL (first, outer, inner, last) method.
LOL, no. The reason your high school instructors review algebra and trig when starting calculus is because they know that most of you weren't paying attention the first time around, or have forgotten what little you learned. You think Calc IV begins with a refresher on Calc II? You think Systems Design spends the first couple hours revisiting Computer Organization?
Prerequisites are a fact or life. Refreshers are an inefficiency. Where the context is known and pre-disclosed and the scope is acceptably finite, it is perfectly fine to employ more informationally dense nomenclature. Stop trying to foist some incompetence-based absolute on everyone in every situation. Some shit just ain't for beginners.
Side note: Taking Calculus has no correlation to assuming "S" means summation in programming. We use the Greek symbol, not a capital "S".
Rebuttal: "?" is not a legal source code character in C. Don't get fresh.
I started this topic because this a widespread issue. There's really no reason why one programmer should have trouble reading someone else's code without copious lines of comments. Even if it isn't self-documenting by technicalities, why not just use names written in plain English? That is the heart of this discussion, I'd say.
That's mostly fair, but my point is that it is not an absolute. There are context-specific exceptions to your rule of thumb, and In My No-Longer So Humble Opinion mathematical formula code is one of them.
So please stop focusing on an example that I used (it wasn't the best, I will acknowledge that) and let's discuss the real problem. The fact that code has become unreasonably difficult to read due to the use of previous programming conventions, and what we can do to establish a new programming convention that will encourage us to write code in plain English.
You picked the example. I already told you you have a decent point, but picked a poor example. Yet here you are simultaneously defending your example choice and asking me to ignore it? Figure out what you want.
You may think that citing JavaScript's verbosity is a meaningful rejoinder here, but it isn't because you're looking at two different levels of audience. The broader and more general your audience, the more explicit and verbose your nomenclature. System-wide APIs should be as readable as possible, as should libraries intended for consumption by other code. Inner workings only to be maintained by experts can be more terse, because a high degree of familiarity is a prerequisite of maintenance responsibility.
Again, you're not wrong; you're just not completely right.