The Trainer System is a novel way to teach programming to beginners. This unique approach stresses the development of programming fluency at a rudimentary level. The Trainer system was designed to help even the weakest students master the fundamental skills of algorithmic expression. Students who have used the Trainer system consistently report that it was more helpful to them in learning programming than anything else - more helpful than lectures, more helpful than textbooks, more helpful than traditional programming homework. The Trainer system includes closed lab software and a lab text. These components are carefully integrated so that students get immediate practice with simple programming constructs, as soon as those constructs are covered in the text. We believe that systems developed from the current Trainer will be useful to other four-year colleges, two-year colleges and high schools. The project will benefit many students; not only computer science majors, but students from any of the many different scientific and engineering disciplines that require elementary computer programming competence.