The deliverables are a set of design documents and a working program. The design documents document a design for a system, regardless of whether that system is ever built. Yes, it's a time machine. You can't skip the design stage, or your code falls apart. You're reading an attitude into my post that wasn't there.
Design precedes implementation, in that it comes earlier in the cycle.
How many times the cycle iterates is dependent upon many things. For clearly defined problems the size of most class projects, one iteration is enough. In the real world, this just doesn't happen. Or at least they do in most problems. That's what makes building a system from an open-ended system architecture is so essential.