I'm a senior at UC San Diego. Our CS majors take their first few classes in Java, but after that we branch out to cover a pretty good assortment of others. By the time we're through, we've all been exposed to imperative and functional programming, many different type systems, and some odds and ends like Prolog that are just fun to learn about.
When I graduate this winter, my required courses will have taken me through:
- Java (Intro class, Software Engineering, assorted others)
- Assembly and C (OS, Systems Programming, Compiler Construction)
- C++ (Advanced Data Structures)
- OCaml, Python, and Prolog (Languages: Principles and Paradigms)
- Verilog (Computer Architecture)
Aside from the required classes, various electives have assignments in Lisp, Perl, Haskell, MATLAB, and SQL. Our non-CS engineers have to take MATLAB, suffer through C (which many hate), and then yearn for the good old days of C when they suffer through LabVIEW.