1. The lecture discusses multiplexers, demultiplexers, and programmable logic devices. Multiplexers route one of several inputs to a single output, while demultiplexers route a single input to one of several outputs. 2. Multiplexers and demultiplexers can implement any Boolean function and be used as general purpose logic blocks. They can be cascaded to form larger multiplexers and demultiplexers. 3. Programmable logic arrays and programmable array logic are arrays of uncommitted AND and OR gates that can implement any two-level logic function by programming the wire connections. Product terms can be shared across multiple outputs.