<p>For undergrad, I don't really think it matters. If you are serious about pursuing a career in the field, grad school is more important. With that said, I'm sure you know that CS is a trinity department while Pratt has ECE. There is a program for double major between those two but if you want to do pure CS, you would apply Trinity not Pratt. I think robotics tend to fall more within ECE though. </p>
<p>I don't know much about CMU's program, but I can say that Pratt has made significant progress in recent years in terms of academic strength and will most likely continue to do so in the near future with attendant increases in the quality of its programs.</p>
<p>If you pick Duke over CMU in CS, you are making the most serious mistake in your life, and you are simply NOT the material to learn CS. And I am serious.</p>
<p>CMU's CS is amazing. You should probably only consider Duke if you would like to do something other than CS once you graduate. If you're dead-set on CS as an undergrad major and you're sure you'll be doing CS-related stuff in the future as well. Pick CMU. Definitely.</p>
<p>What if the OP HATES everything about CMU as compared to Duke besides the obvious advantage is the field of CS? At the undergraduate level, what you pursue doesn't really matter as SBR said. Duke is a beautiful young university that is always trying to redefine itself and make itself better and that's why it keeps rising in ranking and prestige year after year. Combine that with a great social life, incredible school spirit, and warm weather and you've got yourself a fantastic undergraduate experience that you would not get at CMU.</p>
<p>Well, in that case, pick Duke. However, I'd assume that you like CMU at least a little if you took the time to apply there. I don't know what your priorities are, but if your main criteria is academics, CMU has the better CS program.</p>