But I don't want to be a programming drone.
Is this what CE's eventually become?
Programming in school is different from programming at work. In school, I think the only one that was really required was a very lame datastructures & algorithm course in Java. To get anywhere down the CE path though, you pretty much had to take "introduction to computer systems", a very cool course which used C for everything. The only other (non-100-level) CS course I've taken is computer graphics, which I took for fun. Again, I did it mostly in C (though we were allowed to use other languages). I might take the OS course next year (just for fun). Note that for the advanced computer architecture classes, I had to do a lot of work in C and C++ because that's what CPU simulators tend to be written in.
For what it's worth, Verilog is similar to programming, and a lot of CEs end up doing work with Verilog because it's a common way to design hardware.
I'm co-oping at AMD (I did last year, too), and while I happen to really enjoy programming, at work, I usually only write very simple perl scripts. Some people write a lot of Verilog, but my work (I'm a circuits person) last year was along the lines of "read high-level verilog and turn it into transistors". There are a lot of people who
do program - our CAD teams write lots of stuff in lots of different langauges.
I did my undergrad at
Carnegie Mellon (woah, scary, I have to refer to my undergrad in the past tense!). You can find my schedules for most semesters
here (I don't have Fall 01 or Spring 02 there, and for Spring 04 I was at AMD, not school)