Programmed instruction is a method of self-paced learning where content is broken down into small steps with feedback between each step. There are four main types of programmed instruction: linear programming follows a single path; branched programming allows different paths; computer-assisted instruction uses computers to deliver content; and computer-managed instruction uses computers to manage the learning process and tailor instruction to individual students. Each type has advantages like allowing self-pacing and feedback, but also limitations such as lack of flexibility or over-reliance on technology.