Two questions:
1) Do we have to know our exact research area when applying to top CS grad schools? Or do they want us to go into grad school exploring topics/advisors?
2) Similarly, if we happen to know exactly what we want to research in grad school, will having all our undergrad research in a different field hurt chances of admission? For example, if I did my undergrad research in a couple areas (let's say parallel computing and mobile computing), but I want to pursue a different area (say machine learning) in grad school, will the fact that I haven't done research in the field I want to pursue hurt me?