This document discusses different types of programmed instruction, including linear/extrinsic programming and branching/intrinsic programming. Linear programming sequences instructional material into small steps called frames that learners progress through sequentially. Branching programming allows learners choices in their path that determine remedial or next frames, making it less externally controlled. It can use backward branching to repeat missed frames or forward branching to physically progress frames while addressing mistakes. The document provides details on the characteristics, assumptions, and advantages of these programmed instruction methods.