Here's a [survey paper](http://www.seas.upenn.edu/~eas285/Readings/Pears_SurveyTeachingIntroProgramming.pdf) and [another](http://londonmet-163-167-082-061.londonmet.ac.uk/library/a98362_3.pdf). You might want to consider the [inverted method](http://se.inf.ethz.ch/old/projects/michela_pedroni/Report.pdf) also known as [outside-in](http://se.ethz.ch/~meyer/publications/teaching/teaching-psi.pdf), which differs from the traditional bottom-up approach. This [article](http://sydney.edu.au/engineering/it/~judy/PBL/tr_cse_pbl99.pdf) on the application of problem-based learning to first year programming reports some successful results, mainly in terms of secondary skills learned by students. The cost is a major investment and restructuring by those involved.