Probably not all. They probably won't try to cram all that crap into you in 4 years
.. Don't get me wrong, you will probably take 1 course or touch upon all these subjects at some stage. But, you probably won't cover all of them to sufficient detail.
It's a good idea to know what u want early on - if u can. If it's hardware, you need a good solid math background too. You are still pretty early in ur program, so work towards that first. Calculus, statistics, etc. And semiconductor theory, different transforms like Fourier and Wavelets (you'd be surprised how many people do them but don't understand what they mean), and of course electronics, system modelling, etc.
If you are going into Photonics and such, might want to take some courses from the physics department too. I'll tell u one thing. The "computer engineering" department will not offer u the greatest and latest courses on all subjects - they will give it to u from an engineering viewpoint. But, if you ever want to go to grad school, this is not enough. If you have a math or physics faculty on ur campus, take their courses too if you can.
As for books, you should check out the book requirements in the 2nd, 3rd, and 4th year courses in ur university. When u have a solid background, you can go into whatever field you want into when u get into 3rd/4th year.
Just out of curiosity, what University do u go to?