"Introduction to Algorithms" (aka, the first 2/3 of the CLR book. Which is now the CLRS book). Despite the soft-sounding name, it was one of the more difficult classes I had to take, as it went through a number of topics at breakneck pace -- asymptotic notation, NP-completeness, graphs, trees, searching (including radix and other wird ones), dynamic programming, and more. The explanations in the book are clear, the exercises challenging, and the textbook is a great reference later on.
There is just no way you can be a serious programmer and not wind up using at least some of the algorithms and approaches described in the book. Being exposed to them early helps tremendously.
Also, Introduction to Databases. For something so ubiquitous, it's amazing how poorly understood it is by developers. Most people's problems with DBs would go away completely if they took this class and understood what it is they are asking for when creating indexes, writing queries, etc. At some point, most programmers will wind up using a DB. Learn about the tools you use.