Students I have found work well doing peer programming, being able to explain to someone else and have them code it or come up with a solution. In a lot of ways this is what happens in my classroom. The biggest problem is that the assessment doesn't allow for this. Students need to be able to independently demonstrate the skills involved.
How can a student debug their code. Buy using the rubber duck technique they can communicate with, even though it doesn't talk back, being able to explain an idea helps the human brain come up with a solution. I have experienced this, being able to sit down and think clearly about a problem, not have the stress, but time to draw, explain, develop has been one of the best techniques I have developed over the years to sort out tricky problems. I have visual diaries full of drawings, text and ideas to sort out solutions.
So to my students in 2014, we will be rubber ducking solutions.