ideas for university project

All programs are "based on an algorithm". Is there a list of specific algorithms that you should choose from i.e. from your Algorithms course?

A good "algorithmic" problem would be a scheduler that takes in lists of preferred schedules/times and returns a good schedule that is near optimal(The most people get seen in the least amount of time). In more algorithmic tones, create a program that allows n users, U1, U2, U3, ... Un to say what times they are available. Then create a function that minimizes the function waitTime(U1, U2, U3...Un).

For example, a doctors office is open from 9-5, Mon-Fri and taking appointments through an online "fuzzy scheduler". It is fuzzy in that users say their top n preferred times and then are contacted in the future with their appointment time(Each appointment can be assumed to take exactly an hour and a half). On Sunday night, the scheduler has the following information:

Person X is available from 11-12:30M,T, Th and 1-1:30F Person Y is available from 10-11:30M,Th and 2-3:30W. Person Z is available from 9:30-12:30M, 2-2:30M

Thus a possible schedule would be X:11-12:30T , Y: 10-11:30M, Z: 2-2:30M as this gives a total of 1 hour wait for Y, 5 hour wait for Z, and 26 hour wait for X with no overlaps. This is a minimum because if Y doesn't get their M slot, they must wait until W.

It seems simple, but getting an optimal solution is actually impossible in a decent amount of time for large numbers of "persons".

/r/learnprogramming Thread