This lets you do exploratory programming, and also generates verbose comments for the TA to look at.
(This strategy is discussed in Code Complete.)
This lets you do exploratory programming, and also generates verbose comments for the TA to look at.
(This strategy is discussed in Code Complete.)
Actually writing down pseudo-code is good at flushing out hidden assumptions, points of confusion, etc. I've found that tracing through pseudo-code can help identify bottlenecks and design flaws. And it is all much cheaper than a real program. So you get to discard a lot of wrong ideas quickly.
However coding up a test program and being able to run through cases quickly on a computer catches slightly different classes of mistakes. You might not catch a logic error in your code, but you are more likely to figure out how an external API works.
I think that both skills are valuable, and both let you discard wrong ideas quickly. They just catch different kinds of wrong ideas. :-)