Should I let students choose their own research problem or choose a problem for them?

Being involved in choosing a research problem gives the student a sense of perceived control that can result in greater buy-in than simply being told what to do. On the other hand, even very bright and relatively advanced undergraduates are generally not in a position to identify good problems and evaluate their importance, viability, and relationship to existing research. 

One strategy that can be effective is to decide on a  set of related problems but leave some latitude for the student to choose a specific problem from that list or offer a variant on one of the proposed problems. Another strategy that can work well with relatively senior students is to select some initial papers for the students to read, encourage them to find and read related papers, and then ask them to propose candidate research problems based on those papers. In any case, as the advisor, you should be fully invested in the student’s research in order to maximize your commitment and enthusiasm for mentoring the student.