How to encourage and motivate undergraduates to regularly and independently work on problem sets? I'm wondering how can a professor encourage students to complete their problem sets on their own in undergraduate classes. I'm not saying that every student cheats off of other students; rather, I'm saying that some, if not most, students free ride and copy the solutions from their peers (or from the Internet). In addition from my experience, I feel as if this problem is more pervasive among the non-science majors/students (at least science majors are given assignments; the number and quality of them and the level of studens' interest to get on with them are spectate issues). I've even heard a professor remark: "since I know most of the uninterested students in the class are going to simply copy off solutions, I won't be giving assignments; the serious students amongst you (who'll go to graduate school) can do assignments over there." Frankly, I was appalled upon hearing this statement.

I come from a college/place where the local cultural norms are such that students don't like to sit down and devote week in and week out on problem sets, and the professors (for the most part) don't make a serious attempt to give problem sets that really consume a student's week or so. I'm sure the professor who'll dare to give a problem set every 3 lectures (as is the norm in most U.S colleges) will be frowned upon by most students.


  Given such a context, I am interested to know how can professors, in the larger scheme of things, encourage their students to independently solve problem sets on their own? Also, are there any good strategies that professors can use to make problem sets which the students would eagerly wait to solve week in and week out. I know one can only change the mind set of students from the ground up. But how can professors teaching at the tertiary level cope with such (deeply rooted) problems?


Thanks.
A few (by no means exhaustive) suggestions:


Use extended-response or open-answer style questions. What such a question would look like is completely field-specific, but it's definitely doable in every field (yes, even the technical ones). In theory at least, this makes it harder for several students to copy off of another student without commiting actual plagiarism.
Avoid assigning problems directly from a textbook. This requires more effort on your end, but it prevents students from being able to just copy out of a solution manual.
Make the students propose the problems. Similar to my first suggestion -- if the problem is that students are uninterested, give them the chance to do something that is interesting for them. Obviously you need to put bounds on this, but even within the confines of a single problem set this is doable. For example, in a course on Data Structures in CS, you could ask something akin to "write a simple program that uses data structure X and methods A, B, and C." What they do is up to them, but you still test their comprehension.
Use a flipped classroom model. This is probably the most involved suggestion, but if done properly it means the students are working on homework right in front of you. Makes it a lot harder to just copy answers when the instructor is walking around the room.