<p>Also not a CS major, but a scarily-high percentage of my friends are CS majors. CS at Caltech is extremely theoretical. Required classes include Introduction to Discrete Mathematics (or Introduction to Abstract Algebra and then Combinatorial Analysis,) Decidability and Tractability (or Information and Complexity,) Introduction to Computing Systems, and Introduction to Algorithms. A lot of math classes also count towards the major. There are more [practical</a> classes](<a href=âhttp://pr.caltech.edu/catalog/courses/listing/cs.html]practicalâ>http://pr.caltech.edu/catalog/courses/listing/cs.html) and you are required to take a project course with a large project for the major, but those who really want to do just programming and not much math often switch to EE. That said, all of the CS majors I know are still great programmers, but they taught themselves programming and came to Caltech to learn the theory behind it all.</p>
<p>The biggest complaint I have heard from CS majors is that Caltech keeps them busy enough that they donât have much time to work on completely independent projects during the school year. Most have pretty impressive portfolios from before college and would be doing perfectly fine in the job market without any college degree. That said, being a CS major at Caltech has a lot of advantages: There are few required classes, leaving the student with a lot of options to either take lighter course loads or take classes in other areas of study just for fun. Despite being one of the âeasierâ majors in terms of requirements, CS majors make more money than almost any other major and seem to have no problem finding jobs. Google and Microsoft donât seem to see any problem with Caltech CS majors, considering how many they hire. ;)</p>
<p>Edit: Forgot to add, there are a lot of CS SURFs and jobs at JPL that are relatively easy to get. The new DARPA Grand Challenge is also extremely CS-heavy. Caltechâs CS program is growing rapidly and a lot of the other departments need computer scientists for projects.</p>