Fundamentals of Semiconductors