Okay, technically, this circuit *does* use Op-Amps. However, the ones shown here are integrated into an ATmega128DB microcontroller from Microchip. The DIP package breaks out two operational amplifiers that are controllable entirely by software. Even better, you can program them like they are an Arduino!

Active components like transistors, BJTs, MOSFETs,  and integrated circuits (ICs) make it possible to control circuits. This video explains the must-have NPN and PNP BJTs. For MOSFETs there are a couple of N-Channels and P-Channels to consider. Basic ICs include some digital logic stuff from the 7400-family as well as the venerable 555-timer to have on-hand. We did not forget Op-Amps either. Spoiler: We do not recommend the ua741!