Programmed instruction is a method of self-instruction where material is broken down into small chunks or frames presented sequentially. It was popularized by B.F. Skinner in the 1950s. There are three main types: linear programming which presents one track for all learners; branching programming which provides remedial frames for incorrect answers; and computer assisted instruction which uses technology to deliver the content. The development process involves preparatory, writing, and validation phases to create and test the program. Advantages include self-paced learning and feedback, while disadvantages can be loss of motivation if too many errors occur.