Currently, the course-seats in our department are allocated in a first-come-first-served manner: each student tries to enter the system the moment it opens. If they succeed, they get all the best courses; if they are several minutes late, they get only the least wanted courses. We would like to change the system so that students first rate the courses according to their personal preferences, and then - after everyone finishes rating - an algorithm decides on the course allocation in a fair way.
Currently, the GUI gives each student 1000 points, which they can divide between the 25 courses in any way they see fit. Our main worry is that students will focus on the courses that they want the most (e.g. the top 10), give all points to these courses, and pay no attention to the other 15 courses. Why is this a problem? Because each student must get 5 courses to finish their degree, and it may be impossible to give each student 5 courses from among their top 10. In this case, our algorithm can try to give students some of their bottom 15 courses; but it has no information about their preferences among these bottom 15 courses, so the results will not be good.
My question is: how can we design the GUI in a way that will encourage students to give a different number of points to each course, even to their bottom-ranked courses?