Current introductory instruction fails to identify, structure, and sequence the many skills involved in programming. In this article, we propose a new theory of instruction which sequences and structures four skills critical to introductory programming: tracing, writing correct syntax, comprehending templates (reusable abstractions of programming knowledge), and writing code with templates. We developed instruction which reflected this theory. Our exploratory evaluation found that teaching skills incrementally resulted in improved completion rate on practice exercises, and decreased error rate and improved understanding of the post-test. This theory can inform future instructional design for CS1 so we focus on the incremental development of specific programming skills.