This spring, I completed a data structures course at a large state school. We used Java at our university because Princeton did, and I imagine Princeton did because of the ease of segmenting concepts into classes because Java bytecode is the same between the students' devices and the machines which were used to grade their assignments (our grades were determined as a fraction of the number of test-cases our code would pass).