Programmed instruction is a method of self-instruction that uses machines or specially prepared books to teach information in a step-by-step manner. It breaks subject matter into small frames and sequences them to present material in small pieces while requiring frequent student response. This allows students to learn at their own pace with immediate feedback on their answers. There are two main types: linear programming which presents frames in a straight line, and branching programming which allows students to take different paths through remedial frames depending on whether their answers are right or wrong. Programmed instruction aims to control learning conditions, promote self-paced learning, and continuously evaluate students.