Optoelectronics and Photonics Principles and Practices