Several of the other answers on this page jump to providing solutions without first understanding the problem. In my view, this is a mistake.
As as CS student you undoubtedly know that, in order to optimise code, you need to:
- Determine where the bottlenecks are so you can target your efforts where they'll be most effective.
- Use objective measures so you can be sure you aren't making things worse - either within the bottle neck or globally.
The same principles apply to improving your own performance.
Identify the Issue
The first thing you need to do is to isolate the areas where you need to improve your speed. Be as precise as you possibly can.
- Do you find it difficult to understand the problem's requirements?
- Do you have a problem choosing the overall approach to meeting the user's needs?
- Is your typing speed the problem?
- Do you have trouble applying algorithms to real world problems?
- Once you have a solution in mind, do you struggle to articulate it?
These are, of course, just suggestions: you need to study your own behaviour, and then to isolate the areas where you need to improve.
There are several approaches you could use here:
Compare your performance with others.
Bare in mind that when you're watching other developers, much of their "programming skill" is hidden, as it goes on in their heads. You may need to get them to articulate what they're thinking in order to figure out where you are currently falling short. Even then, what people say is going on in their heads isn't always very accurate. Also remember that you're you, not anybody else. Your strengths and weaknesses are different from other people's, and you will do better if you capitalize on your own strengths rather than try to fix your weaknesses.
Work out where you spend most of your time
If there is a specific area that is really slowing you down, working on that area will often improve your overall performance. Of course, optimising a single area can actually make other areas slower... but generally this approach works well.
Look for low-hanging fruit
When you start analysing your behaviour you might find that there are some easy wins. These might be worth your attention. Even small improvements can add up to big ones.
Don't limit yourself to single tasks: consider how they inter-relate
You can loose a lot of time task-switching, or by doing tasks in the wrong order.
Once you've narrowed down your issues very precisely, you then need to measure your current performance in that area. The reason for this is that you will benefit from some objective means of determining whether or not you're getting quicker. This isn't always easy, and I wouldn't spend more time on this than necessary - a rough measurement will probably be enough - but you don't want to fix a bottle neck only to discover that this has made you slower overall.
Now it is time to move on to solutions, and some of the other answers already posted will almost certainly help you here.
You have two basic approaches:
- Improve your performance in areas where you are weak.
- Leverage your strengths to "hide" your weak areas.
For example, one of the things that makes me a slow programmer is that my memory is shot. To help me deal with this I could try to deal with the weakness by, for example:
- I could learn simple memorization techniques
- I could practice remembering things by playing memory games
Or I could mitigate my need to remember things by employing my strengths:
- I could learning to re-think out solutions rather try to remember them
- I could improve my Google skills
- I could use crib sheets
As I have mentioned, building on strengths is usually more effective than focusing on weaker areas, but it is up to you to find the best approach for you.
This is really the only way you'll get quicker at anything.
There are two schools of thought here: one is to go fast and worry about quality later. The other is to focus on quality and then learn to go fast later. There are things to be said for both approaches: you'll have to see what works for you.
I don't suppose that everything I've written will be useful for you, but I hope it will stimulate your thinking and help you find solutions that work for you in your situation. All the very best.