Originally Posted by aussiemcgr
I think a student needs to understand the basics before getting into the Object Oriented philosophy. For simple programs, it's much easier for new students to learn imperative programming before starting to worry about functional or Object Oriented programming. Granted, the amount of time being spent on imperative programming may be a bit excessive depending on who your professor is.
I disagree that it defeats the purpose of Java to have students write classes which are already implemented in Java, I think a computer scientist should understand how the tools they are using work. While implementing your own sorting algorithm every single time may not be practical, knowing these basic algorithms will help you develop larger algorithms and systems which perform much better than a simple "intuitive" solution.
Anyways, back on topic
The reason you're diamond is drawing three stars in the middle is because you're starting to draw stars before you decrement to 2 (to take into account that 3 stars have already been drawn by the first loop).
Try running your code as if you were the computer (get a piece of scratch paper to keep track of the output and variable values).