Lol, yeah. It's kinda redundant to recreate methods that already work (and likely work faster), but understanding linked lists and other data sets is really important :/
I like the language of Java, more or less. I find it really easy to program in, and the documentation is really good, for the most part. My only problem is the performance issue.
Of course, if teachers really want to use a language that is processed by a JIT compiler like Java, but runs better, why not use one of the .net languages? Sure, it costs a lot to get the whole visual studio... But they could easily install VS express for free, lol. The syntax is fairly similar to java, combined with a little bit more C++ style stuff, there's a ton of documentation (MSDN is really helpful... REALLY helpful), many f the data types they use are similar or identical to data types used in windows itself, so when you work with certain types of functions, they are very close to what you would do in C++ or anything else when you program for windows, you've got a lot more control over your programs than in Java, but you can also make things damn easy. And best of all, you don't need to use 200,000 lines of code just to make sure all the buttons and items on your form are in exactly the place you want them. Who the fuck designed the API for that in Java (can't remember the specific toolkit name).
Seriously, in highschool, I spent almost an entire class trying to get the program I had finished to look like the teacher's one (that was one of the grading requirements, because we had to learn how to use that code to properly lay out our program). When over half your program consists of code to position everything exactly, there's something wrong with the API. (And I'm not joking about the "over half the program" part.)