<p>I think I pretty much disagree with everybody who has posted so far. </p>
<p>CS is a huge and vast field. There are no hard and fast rules. </p>
<p>There CAN be a benefit to EXCELLING in a top program in terms of getting into a top graduate school or in terms of access to the most lucrative positions. A recommendation from a rock star professor at Illinois would carry a lot of weight. A place like Michigan has UROP where it’s supposed to be easy to get involved in research. </p>
<p>Research is where the cutting edge things happen. If that turns you on and you can rise to that level, getting access to the faculty at the top of their game can be a real career booster. </p>
<p>Excelling at a top school can be a signal to a recruiter that you have serious ambition to rise to the top of your game just like going to a highly selective school can signal that you are exceptionally smart. </p>
<p>If you’re just going to be average, it probably doesn’t matter. </p>
<p>I work in the Boston area for a large firm that hires mostly CS and EE. We recruit at Illinois, Michigan and Purdue. We do not recruit at Stony Brook even though it’s much closer. Why? </p>
<p>We have a limited recruiting budget. At the Big 10 schools we get large numbers of applicants, but we also get access to world class graduate students. We hire at all degree levels. </p>
<p>That said, Stony Brook is a fine school. If you went there and sent us your resume, you’d likely get noticed. </p>
<p>There CAN also be a benefit to going to a smaller research university where faculty NEED undergraduates to help with research and there are more resources to support students who need help so that you can excel. </p>
<p>There are also differences in the curriculum at many universities. Some emphasize theory, some emphasize projects, some are balanced. What makes sense for you depends on your interests and your mathematical maturity. </p>
<p>Emphasis on the practical prepares you for your first job. Emphasis on the theoretical prepares you for a 40 year career and paradigms that don’t even exist yet. You may need both. Not everybody can handle the level of abstraction that theoretical computer science provides and for many it’s the courses they do the worst in. </p>
<p>Try to go to a place with a strong computer science culture. </p>