Ok, this is a bit long, but bear with me. The basic gist of this post will be my need of a web-based program that allows university students to do their homework online and submit it through the program, which automatically checks for correct answers and lets the professor know their score and whether or not they actually did it.

First, a little background:

I teach ESL at a university in South Korea. Our department has 40 lecturers in it, all from one of the seven standard English-speaking countries (USA, UK, Ireland, Canada, Australia, New Zealand, South Africa). We are looked down upon by all the other departments and thus receive less funding. Therefore, over the past year we have been working to completely revamp our image and the way we run things in order to look and become far more professional, as well as to ensure that our students are getting top-grade English education (every student is required to take two semesters of ESL to graduate).

One problem we have is homework. Why is it a problem? We have 15 weeks of classes (-2 for exams, so really 13), so ideally that should be 13 homework assignments that the students do (once a week, natch). However, some lecturers never assign homework, some assign it a few times, and some assign it every week. In addition, there's no standard homework we're giving (we all just give our own -- keep in mind that these students are strongly evaluated to determine their level and to make sure they join the appropriate level class, so there is uniformity across different lecturers). Every lecturer has approximately ~100 students for these classes, so assuming every student does their homework, that's 100 sheets of homework a week to grade. Those lecturers who give homework usually just give grades based on who actually did the homework rather than if it was correct or not. In addition, many students don't do the homework ("I was absent last class so I didn't get it," "I left it at home," etc), and a lot of them will just copy it off of their friends 5 minutes before class begins, sometimes in front of the lecturer (whenever I see that, I tell them to leave the class and that they're absent for the day).

We've come up with a solution, but it only goes halfway and makes things worse in some ways. We've [finally] set up a website for our department (I know, we didn't have one before, it's like 1993). We're making one homework assignment per lesson that is uniform, so every class will have the same assignment, and they're all being made before the semester begins (March 5). We will upload the homework every week to the website in docx or pdf format so the students can either print it out or do it on their computer and email it. Now, this will greatly increase the workload of every lecturer 10-fold, and it still doesn't solve the problem of students copying each other right before class. Having students email it (or even print it out) becomes a logistical nightmare, as there are so many students and it will be done every week (about 30-40 students per class).

Here's MY solution, but it's really ambitious (unless this already exists): The students do the homework through a form on the department website which automatically scores the homework and tells the lecturer the score, thus getting rid of all the previously-mentioned problems.

Here are the criteria for what I need:

1) Students enter their information into a form (name, student number, select a lecturer from a drop-down list, which activates another drop-down list from which they select which class they are in specifically).

2) Computer automatically checks the answers and tells the students their score, but does not tell them which answers are correct or incorrect.

3) The new homework becomes available Monday morning at 12:01 AM and is due the following Sunday at 11:59 PM. After the deadline they can no longer access the previous week's homework, but if they did it, they can print out the questions and correct answers (the exam questions will be *based on* the homework questions -- not the same, but using the same vocabulary and grammar -- they can use the homework to study for the exam).

4) Students can view their grades at any time and keep track of their homework score (right now it's only 10% of their final grade, but we're trying to move it up to 20%, which should encourage them to do their homework even more).

5) Every question will probably have to be multiple choice.

6) The scores will be sent to a central folder which is accessed by the lecturers. The scores are automatically added to spreadsheets of classes which keep track of the students' overall grades.

7) The lecturers' only job is to check who did the homework and who did not, and could, if they wanted, announce at the beginning of class this information.

8) If possible, I would like for the questions and answer selections to be randomized, thus cutting down even more on cheating. They will all answer the same questions, just in different orders with the answers being in different combinations.




So basically, does this already exist as FOSS? If not, after I make it, I will release it under the GPL3 (I'm going to check my contract tomorrow to see if I'm allowed to keep intellectual property rights; I don't want my university to claim IPR and then sell it without my permission) so that other schools can use it.

If it doesn't already exist, can anybody point me in the direction of where I need to get started? I would really appreciate any and all help.

I've got two months to get it through alpha mode on my own, and I'll do beta testing with a few professors and their classes during the spring semester, with hopefully a 1.0 release in the fall.

I think the only requirements will be html, css and possibly java if I wish to institute javascript. A good knowledge of spreadsheet software will of course help (it's Korea, so we use WinXP and Office 2007 for everything unfortunately).