Do you want your students spending more brainpower memorizing, or do you want them to spend that same brainpower
producing? ALA fundamentals vs high-end concepts
You want students learning. That means doing things that teach them the things they need to know. If they don't know it now, they'll have to learn it on the job, or they won't know it. Which is better?
You're missing completely the point of education. Generally, your students want to make money, and in order to do that, they need to learn their trade. A tool which prevents that makes them less likely to make money.
You talk about "memorization" as if it's a bad thing. I'd rather talk about learning: you can't use a library unless you know it, and you can't know it without learning it. A student needs practice learning libraries, so letting them use code completion prevents them from learning what they need to know, and prevents them from being effective programmers.
Or do you really think that something like
Scanner scan = new Scanner(file); scan. <ctrl-spc>
is the way an effective programmer works?
Where does this idea come from that notepad is an editor that anyone would use? Of course you don't use notepad for this, you use vi. And yes, I write all of my code in vi.