Creating a piece of software is 90% designing and 10% execution. Writing the code is cherry on the top :). If you have time between classes - create diagrams and solution on piece of paper and when you have though it all up, implement it at home.
Working now in a small company it's often better to have a quick chat over the design and dive into the code, make some mistakes then address the bugs and maybe (but not that often if you have a good team) the design.
but make sure everyone's happy with the design before doing anything.
i found that in my old company it would actually be 90% design & 10% rushing the code at the end. If you were given 12 months for a project then the process-mad people would say "okay, that means we have to write documents for about 10 months and leave the code for the last 2", which wasnt right in my opinion.
Although they were iterative (in theory), and we are agile (in theory :) ).