Most language specific texts contain very little if any information on design, whilst books on design approach the topic at too high a level for someone learning their first language. This inexpensive introduction to design can be used alongside whatever programming book suits the student's particular needs.
Repeats of repeats
Menus and subroutines
Program design language (PDL) * Starting at the top
Answers to exercises