OpenMOOC / moocng

MOOC Engine
Apache License 2.0
88 stars 43 forks source link

enhancing Learning Analytics #54

Open mmjazzar opened 10 years ago

mmjazzar commented 10 years ago

Hi all, If I want to enhance the Learning Analytics for the instructor and adding an analytic charts for the student in his profile.. How it can be achieved ?

something like Khan Academy indicate the student performance in all enrolled courses and statistics for the instructor about the number of students in his class and more information about them ages, gender, and any extra info needed form DB

ablanco commented 10 years ago

Hi @mgazzar

In the latest code available the course statistics aren't calculated on the fly. They are are stored in the mongodb and are updated through signals whenever the students view videos, answer questions, etc.

The scores (the student performance), on the other hand, are calculated on the fly, which is a heavy process that we want to rewrite. We want to refactor those like we did with the statistics. Right now it is hard to show a student profile page with his performance in every course because that requires heavy calculations, it is the same problem that the transcript view has, it is slow and goes heavy on the server. Once the refactor has taken place it will be easy to do the profile view, because the students scores will be precalculated and stored in the mongodb, and updated properly through events whenever the student do something that could affect its scores.

About gender, age and so on, we don't ask for that information in the registration process, but it would be interesting for the instructor to have that kind of statistics. I'm not sure which would be the best way to gather that information from the students, if they were required fields in the registration that could stop people from register, if they don't want to give the data or fill a long form. Maybe adding a survey plugin, so the teachers can ask their students to give the data, and whoever doesn't want to can ignore easily, for example.

What do you think?

mmjazzar commented 10 years ago

First thx for ur reply ,

about the scores (the student performance) so right now it's heavy and we want to refactor it ... that's leads to the next question how to refactor these data?

and about other data from database u did expalin it with a great example many thx to u .. I'll try to check it :)

ablanco commented 10 years ago

The refactor of the scoring code is not simple. Whenever a student do something that could change his score, a signal must be sent. This can be accomplished adding signals to the right django models and mongo resources. Then, partial scores must be calculated and stored in new collections in the mongodb, these collections must be designed so they can handle millions of documents. Finally, the transcript view should look for the scores in the mongodb instead of calculating them on the fly.

mmjazzar commented 10 years ago

I hope the refactoring process will be done ASAP and if I can help with something or start learning how I can help .. it'd be great.thank you again :+1: