Assuming that you give Apache 20GB of RAM and the DB Server 12GB of RAM, you should be able to process around 200 concurrent requests. That is not total users, that is concurrent, you can host almost an unlimited number of user accounts and courses till your disks fill up.
That is using the high end of our average of 100MB per concurrent user process. 20GB of RAM / 100MB = 204.8 Concurrent Requests. Properly tuned Apache and MySQL Server you should be able to hit that mark.
Your high average might be lower depending on what purpose it will serve, I pull our high average during quizzing.
Setup a small dev environment, put it through what you think they will be doing and grab an average for MB usage and calculate off that.