Many students enter into a computer science program with the belief that they will learn hundreds of languages, when this is rarely true. The truth is, you will learn as many languages as you want. The majority of programs focus on a single language or a family of languages, usually Java or Python. A few programs that are more geared towards game design will sometimes focus on Objective C or C#. However, that is just the core curriculum. Elective classes allow students to learn far more, and sometimes certain specializations within a field, such as Systems programming or a Game Design track, will require students to learn other, more complex languages that are area-specific. As an example, COBOL is used almost exclusively for transaction processing purposes — and COBOL programmers are rare enough today that they are very highly paid.
Basic and Advances Languages
The further a student advances into the program, the more languages they will have the option to learn. The initial courses will be two basic levels of a single language, whether that is Java or Python; these courses will be used to gain a working knowledge of how languages in general function. Another course that is required is computer organization, which handles how languages interact with the hardware. Many programs have the option to take a class that offers a brief overview of anywhere from seven or more languages that usually includes Ruby, Erlang, IO, and more. In addition, once a student learns the basics of one language, it is much easier to learn another, so independent study becomes a very viable possibility.
The Different Language Families
There is a large divide between object oriented languages and non object oriented languages. The basics of one are completely unlike the basics of another, which means that a student will usually focus on or the other. Since object oriented languages are more common, more programs focus on this group. The same divide occurs between higher level languages like Java and C++, and machine and assembly languages like COBOL. Since these languages communicate on different processing levels with the computer, they cannot be used for the same thing. However, the use of assembly language is rare, so many programs do not focus on languages like that, opting instead to build their curriculum around the most common language families. If you are interested in learning more, websites like Computer Science Unplugged have a lot of resources for an interested student.
A computer science program at any university offers a very good way for a student to get involved with programming. The base knowledge provided by these programs allows someone to learn many more languages at their own pace and on their own time. However, the exact number of languages you will learn varies by the school and the degree. A good rule of thumb is three, though. Of course, programming languages are far too complex and in depth to learn them all the way, but you will become proficient enough within the language that all practical applications will be possible.