I dunno if this is relevant or not, but I'll give it anyways...
When I was making my GCSE (yes, I know, lowly GCSE, but stick with the story) IT projects, I used to totally ignore what they told me to do. Instead of writing out "what this program should do blah blah blah, and how it should do it," I always liked to make a basic setup of the project, so that I could see where everything was going in my head.
Just before I left A-Level Computing (wanted different course), I did the same thing. I left a few weeks before the first coursework hand-in was supposed to be done, with only ~50% of the write-up done, but the Access database I was working on pretty much perfect.
So, in my experience, designing the thing first will always let you work through with fewer mistakes, because you can "see" what you're doing.
If I was to make something now, I'd probably do:
Pseudocode (maybe, depending on complexity)
Hope that helps,
Living proof of John Gabriel's theorem