Introduction to Semiconductor Devices: For Computing and Telecommunications Applications