How is Java an "easy" language? The depth and breadth of detail depends entirely on the course material. I think Java is an excellent language to explore the practice of OO, loops, data structures, algorithms are secondary to that.

When I was going to Umich, a Comp engineering courseload might have included Java, but in other classes they had me coding compilers, tcp ip stacks, hand coding assembler, designing a CPU and hand coding it, adapting common solutions into parallel processing algorithms, writing games, etc. You can't shoot down the whole curriculum on the basis of one course. If the purpose of the course is only to teach introductory loops and structures in a safe environment, so be it. There will be other courses to deconstruct and understand the underlying nature of the machine. If the course is impressing OO design and practice early, then even better.

I remember back in the day when the professor adamantly insisted that it was not possible to code a fibbinaci's sequence algorithm in less than 11 assembler instructions. Most people submitted solutions of 15 to 40 instructions. I was happy enough to get it down to the "optimum" 11 instructions, when a lateral thinking fellow next to me "discovered" it was possible to for the program to overwrite its own instructions, and ended up submitting a solution in 7 instructions. It was pretty amazing then, but what pressing application would that have these days? I think going from a lower level to higher level languages can potentially carry over bad habits more so than going back the other way.

Calvin