Well, if you have a 2-3 year plan then maybe you shouldn't spread yourself too thin too soon. Mastering the subject is more important than learning languages. Computing science is far more than just programming, and it's not too hard to pick up a new language if you have a solid foundation. My different classes were taught using whatever language was pertinent for it. We used Modula-2 in introductory classes, LISP in AI classes, C in operating systems and networks... You didn't have to become an expert in any of them, just pick up the basics and work with that. My own approach would be to just do the class in Java for now, paying attention to the theory. Soon enough you will learn operating systems and likely switch to C or whatever else the teacher finds appropriate. Pick up the language then, it's more efficient.
Of course this is not my business, so here's a more direct answer to your current question.
Not exactly a "paradigm" since it is still procedural, but a short introduction to machine language/assembly is enlightening for a number of people who have not yet been taught the fundation of digital circuitry and how the internal registers of a CPU are used. It's useless for all but a few specialized jobs nowadays, but it is revealing to know what goes on at the most basic level so you may find it valuable.
OO, which you are covering with Java, is by and large an extension of procedural programming which adds a way to modularize and reuse code. It is still procedural inside its various class implementations. A lot of (most?) recent languages support OO nowadays (Java, C#, Ruby, Python...) so pretty much any language is fine to learn that. I would not spend time on plain C right now though, you can easily pick it up later if and when you need it.
Prolog can cover logic programming and give an overview of AI expert systems. Interesting and different from what you are used to. You may not learn it in school unless you take AI classes.
Functional programming: LISP is the best known in this group and it has spawned many less-famous descendents. Since a lot of errors arise from misuse of variables, functional programs get rid of them (almost). Just use functions that call functions. There is still data, mainly stored in lists, and your whole program processes lists. It's also a very different way to get a solution to a problem. Interestingly maddening at times (LISP (stands for (Lots of (Infuriating (Superfluous (Parentheses)))))). It's another popular AI language.
Then, you have computer languages that are not programming languages: SQL is an important one! It's a descriptive language used to describe what you want instead of writing procedures or functions to do it, and it's a must if a job interests you. If there's any database class in your curriculum, you will use it there. Similarly, a lot of descriptive computer languages are needed for this silly internet fad: HTML, CSS, XML... Again, not programming.
Well, have a good time!