Tough and very technical interviews. They mostly want to know 2 things:
a) Your reasoning.
b) Your knowledge of programming, data structures and algorithms.
It is not critical to get the right answers as some problems can be tough, but at least show that you can reason and know the basics.
If you are aiming for an R&D I position, you should at least dominate:
- Basic data structures, their pros, cons and possible use case scenarios. Lists, stacks, binary trees and vectors mostly.
- C or C++ at a medium level. Pointers, receiving parameters by value or reference in functions, hopefully some Object Oriented knowledge (Classes).
- You must know time complexity of typical algorithms, like quick sort and searching in binary trees. You should also know how these basic algorithms work.
Useful tips:
- Having worked before (in or outside school) in a computer science project helps. You will probably be asked about previous projects and it helps if you revise your previous works to be able to explain them without missing the key points.
- Interviewers are very reasonable and technical people. Do NOT try to fool them with redundant answers or trying to make up answers that do not say much. It will only make you look bad. If you do not know something just say so.
- Try to take your time and reason on the problems they give you. Even if you don't get the answer, they will appreciate a logical thinking process.