Take classes from people on these lists: http://cte.illinois.edu/teacheval/ices/exc_teach.html. Make sure you go back at least a few years because there are several good teachers who don't teach every semester or were on sabbatical. Prof Bailey comes to mind as someone who was on sabbatical.
When you register for a class go to every single office hour and figure out which TAs know their stuff. Only go to those office hours.
Figure out how much the Professor actually loves the textbook. If he really likes it, problems on homeworks and exams will be of the same theme as the textbook. In classes like that you benefit immensely from taking notes out of the book. Note most textbooks are on reserve at Grainger, no need to buy if you dont want to.
If you haven't taken 241 already, just get through it. The department is still figuring out how to teach that class.... it's not the teachers fault. It just doesn't quite fit right and probably should be two classes.
Use 242 as an opportunity to meet good programmers and continue to work with them afterwords. The actually increase in programming ability from the course itself is questionable. Although again, not the teacher's fault. It's a really hard thing to do.
Get involved in undergraduate research. A great starting point is Lawrence's CS498la (undergraduate research lab). Professors are a lot more tolerant and welcoming than you'd think (but be ready to work hard). Note that research doesn't have to be crazy hardcore theoretical stuff. It can be both cool and relevant (studying some sort of HCI problem on mobile devices?).
Figure out who the competent Math professors are for those classes that are required. I didn't do my research here and got bitten by it. My impression is that there aren't very many good sections for Math.
Take a graduate level course in the subject you are interested in. One of the unique things about top tier programs is that you pretty much can take a course in whatever you want. So for example if dbases are your thing, taking 511 after 411 is the way to go. People who have to scale Rails applications to massive sizes need to know data bases very well... you might as well take the opportunity now to get ahead of the game.
Oh and don't leave freshman physics until your last semester. That was a major fail :P
I don't really have any big secrets, but a lot of people manage to miss most of the above. Apologies if you already know it all. :P