Semiconductor Device Fundmentals - with Computer-Based Exercises and Homework Problems