The Physics of Semiconductors: With Applications to Optoelectronic Devices