Forum OpenACS Q&A: Assessment - urgent

Collapse
Posted by Nima Mazloumi on
Hi all,

is assessment working and what do I need to get a clean and running installation?

Shall I go for HEAD or oacs5-2? Has someone tried to install it from scratch?

I was asked to evaluate assessment for potential internal use and don't know where to start.

Maybe someone here as a working installation on a test server to start with?

Help appreciated.

Greetings,
Nima

Collapse
Posted by Jose Pablo Escobedo Del Cid on
Test servers:

http://strauss.gast.it.uc3m.es/

There you have the three brances oacs-5-1, oacs-5-2 and HEAD, already with the assessment package mounted in the commuities. The code is checked out from the repository and reinstaled each day, so I think that's what you are looking for.

jopez

Collapse
3: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
jopez, thx.

Maybe you can give a short feedback whether assessment has support for the following:

- Performance for assessments that have up to 1000 submitters
- Reuse of an assessment (cut & past)
- Reuse of a question (cut & past)
- over all assessment creators
- for one single creator
- Reuse of a section (cut & past)

- Connecting assessments to a course catalog. That if several universities would like to assess all their courses on one portal would it be possible define a university-->lecturer-->course catalog and allow a submitter to assess a course? If not any part of that possible?

- Some kind of reporting functionality for an assessment like
- number of current submitters
- frequency of occurrence for a given answer
- what else?

- Any feature that would allow to notify users to assess a given course like through a list of email adresses?

- Generation of something they call assessment codes. A code is generated for students who actually visited the course, thus only students with a valid code can assess the course.

- A receipt that the student assessed the course

Collapse
4: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
As I said it is planned to provide an assessment portal where university can register their professors and their courses and students can assess the courses without any account. Only a valid code for the given course is required since courses are assessed anonymously.
Collapse
Posted by Jose Pablo Escobedo Del Cid on
I'm sorry but I can't answer to all of that, I can only tell you that from the admin page of the assessmen package you have the option to copy the assessment (to another community), view the responses (all, by user and in a csv file), request notifications and finally, export the assessment to a zip file. You can also manage the permissions, but I haven't tried giving the permissions to non registered users.

Maybe Eduardo or Malte can give you more info...

Regards

Collapse
6: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Can we support likert scales questions like these:

http://dotlrn5.uni-mannheim.de:10000/likert.jpg

Please note:
- question is places left of the choices
- choices can either have their own header or a section header
- choices can have min or max header or individual headers

Collapse
Posted by Malte Sussdorff on
Likert scale is possible, takes around one hour of thorough training to understand how to do this.

Left positioning is possible.
- You can have headings and subquestions
- Choices can have their own header, but the value of the answer is displayed (you cant say "Perferct" = "2" in your CSV file).
- Min / Max header is something I dont understand.

As mentioned, assessment is very complex and the training for likert scales alone takes at least one hour. You can ask the people at the university of Heidelberg to give you an introduction.

Collapse
8: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Malte: thx. Who can I contact regarding Likert scales?

And if it takes 1 hour to understand I guess this is a good argument for documentation. Is programming involved or simply knowing where all the all the bells and whistles are?

Collapse
9: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Malte, can you anser any of the other items on my list above? Like performance, reuse, statistics,...
Collapse
Posted by Malte Sussdorff on
- Performance: Should not be an issue, but not sure.
- Reuse: no cut an paste, just searching in catalog and using questions/sections/assessment from the catalog. The catalog currently is public (so everyone could reuse questions which you created).

- Not sure I understand, but if you want to have multiple lecturer answer and grade the same assessment then I *think* you could easily put the assessment into multiple communities. Otherwise it is "just" a question of permissions.

- List of current submitters is there. Option to write to those who did not answer.
- You get a CSV file with all the answers to an assesment which will show you the number a particular answer was given. Is this what you want ?!?
- You can notify all users who
-- have answered the assessment
-- have not answered the assessment
-- are participating in the assessment

- The assessment code is called "Password" in assessment. Only if you have the password you can access the assessment.

- Reciept for the student? This should be an after assessment action which you can define that generates a PDF for the student (or whatever you want. This is your custom code then).

Collapse
Posted by Malte Sussdorff on
It is indeed a good arguement for documentation. Feel free to write it :). You could contact myself (though we are fairly stretched at the moment so we could not help you quickly free of charge). Alternatively I think you can contact Renato Dambe at the medical faculty in Heidelberg.
Collapse
12: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Regarding "Password" does that mean that only users with an account can submit an assessment?

What would be needed is rather a default user who requires no login but must provide a unique transaction number that can only be used once to submit an assessment.

So the quest is whether assessment accepts multiple submits from a single account or from a user without an account and instead checks against a list of valid transaction numbers assigned to it.

Collapse
Posted by Malte Sussdorff on
Nono :)

There is a password for the assessment, so only people knowing the party can answer the assessement

and people do not need to have a login to the system (I think... )

Collapse
14: Re: Assessment - urgent (response to 1)
Posted by Rocael Hernández Rizzardini on
Performance is an issue in medium to big size sites, at Galileo assessment is the application that gives us more error alerts due its over-intensive use of the CR, mainly deadlocks happening all time, plus using it is very slow, sometimes we think about whether we drop it and build something with more scalability in mind, or we fix its complex code. We prefer to try to enhance it.

We have now about 1.5M cr-items and 2M cr-revisions. If you have less than 0.5M cr-items, you should be in the safe side.
The functionality is very robust, but the UI for creating an assessment is overly complex.

In general, UI for creating assessments & scalability needs to be enhanced.

Collapse
15: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Alright, so far I have 30.000 cr_items and 10.000 cr_revisions. I guess these all file-storage files. Since we don't use lors currently all is fine.

Where are all your items coming from? I mean which package?

Collapse
16: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Jopez or Roc: Do you have experience with Likert-Scales like the following using assessment:

http://dotlrn5.uni-mannheim.de:10000/likert.jpg

Collapse
17: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Ok, here is the use case.

A student comes to the openacs installation. The student can see form with three dropdowns...first the university, then the professor and finally the course. Once the course is found the student passes on the identification code for the course evaluation which is check against the list of valid codes for that evaluation. Then the student answers the evaluation and receives a receipt.

Finished.

How would you suggest to implement this with openacs?

The list of universities, professors and courses is dynamic. Professors should be able to extend it. Would the courses package be a starting point? How could we link a course to its corresponding assessment?

Once a course was found and the identification code is passed we need to check for its validation. Could I use a trigger for this purpose? Something like before we allow student to go on (pre assessment start) we check the code against the database. Once the course has finished we use a trigger to store in the database that this code has been used.

Also the student should not have an acs account. Every anonymous user should be able to process an assessment with a valid identification code.

Collapse
18: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
I forgot to mention.. every professor should be able to extend a fix assessment by some individual questions. Thus while all courses share the same base assessment there should be a customizable portion.

Somehow I don't like the idea that we need to copy an assessment each time a course is registered. Thus maybe there should be a single assessment with a first section to determine the relevant course and to check whether the user has a valid code. But now comes the big question, how can we include at the end the customizable portion of the assessment depending of the course that has been selected?
What is surely not wanted is that there is one large assessment with many optional sections. Rather each professors should be able to define a section which is automatically included in the assessment at its end.

Any idea what is already there and what needs to be coded?

Collapse
19: Re: Assessment - urgent (response to 1)
Posted by Dave Bauer on
Nima I would just suggest that a visitor just enter their unique code. Why make them select the university, professor, etc when the unique code will bring them straight to the correct assessment? In fact a URL that brings them straight to the assessment would be better, but I suspect you might not necessarily be emailing all the information, so a URL or a box to enter the code would be cool.

This seems like someting that is necessary for anonymous assessment since otherwise there is no simple way to keep someone with a single passowrd per assessment from repeatedly filling it out.

I am not familiar enough with assessment to tell you what is there and what's missing frm your use case.

Collapse
20: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Jopez: I cannot find the courses and the dotlrn-catalog packages on the test servers. Any chance that they get also installed so that I can get an impression what they are about?
Collapse
Posted by Nima Mazloumi on
Dave: your point is correct. It is an anonymous assessment and just the code should be fine.
Collapse
Posted by Jose Pablo Escobedo Del Cid on
Hi,

I talked to Eduardo and the dotlrn-catalog package is now installed and mounted automatically =)

I'm not sure about what courses are you talking about. There is a community (test) which is created automatically each time the code is updated and the database reinstalled. Are you talking about that?

About the likert question, I don't have too much experience with that, but I have just seen the "Final Test" assessment and it has a likert question type, I guess it was you :-p. So I think it works.

Regards

Collapse
23: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Jopez: Can't find dotlrn-catalog. Can you post the link?

Regarding Likert-Scales yes I created that but from what I see it is only a quick an dirty solution. What we would need are two flags

- to tell where to place the question text
- to tell wether or not to hide the choice labels

I don't have any idea how difficult that would be to be implemented.

Another requirement would be to allow referencing an assessment, a section or a question instead of copying it. Thus a professor could reference a standard assessment and add so more individual questions at the end. Any comments on this?

Regarding the "courses" I will wait until I have checked-out dotlrn-catalog.

Collapse
24: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Where can I define actions? Do actions provide means for input and output processing?
Collapse
Posted by Jose Pablo Escobedo Del Cid on
I'm sorry, I forgot to tell you that we tested it on the alternate server. Anyway, it's already fixed:

http://strauss.gast.it.uc3m.es:8020/dotlrn-catalog/

About your other questions, as I told you, I don't have too much experience with assessment in that regard, so I can't tell you how difficult could it be to implement it.

jopez

Collapse
26: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Jopez: Thanks. This is nice. You can even associate an assessment to a course.

I found some bugs though:
- Currently you can select from any assessment defined on the system
- Once you assign an assessment it is assumed under /assessment/assessment?assessment_id=foo so I guess we need to resolve the URL depending on the Id passed
- The assessment link is labeled as "enroll" but assessment could be really several things: an enrollment form, a test, an evaluation at the end...

Therefore I would recommend to allow a course to be associated with several assessments and let the professor decided what it means. And going that way why not allow a professor to associate any acs object to a course? If someone uses ETP or XoWiki in a course you could provide a link to the website and likewise to a forum, to the profesors homepage, to a blog ....

What do you think?

Who is actually the developer of dotlrn-catalog? I like it very much.

Greetings,
Nima

Collapse
Posted by Rocael Hernández Rizzardini on
Nima, dotlrn-catalog was developed by Viaro, though now is currently unmaintained. There is a lot of documentation for actions and the dotlrn-catalog.
Collapse
Posted by Carl Robert Blesius on
Correction. It is maintained (although in a slightly different form).

We have been quietly using (and improving) it within Partners Healthcare for a pilot of .LRN (that will be expanded considerably in 2006 -- Partners has 30K+ employees). So far about 500 people have signed up for courses using the pilot. We have also integrated the system with our internal Active Directory using real time sync (we hope to improve integration of AD as well this quarter).

Take a look at the limited public UI here: http://hub.partners.org/catalog/

Here is a general project discription:
http://lcs.mgh.harvard.edu/projects/hub.html

I am happy to give you an admin account on our dev or staging machines Nima so you can try it out.

We are using a version that integrates ecommerece and uses the dotlrn course catalog API.

Eventually we hope to clean up the two packages (dotlrn-catalog and dotlrn-ecommerece), but at this point they are best taken together (e.g. I am pretty sure there is code in dotlrn-ecommerce that should probably be in dotlrn-catalog -- we put the two puppies together and ended up with a mixed breed).

It uses assessment for data collection (note: we are also dedicated to cleaning up assessment).

The original work on dotlrn-catalog was done for Heidelberg Medical School by Viaro, but it was not put into place so it could be fine tuned and tested before I started my fellowship at MGH (in addition Heidelberg was not yet in a position to actually use the code). Heidelberg Medical School will be using the same code starting in March and I will be working with them on improvments in February as well.

Also note, that the Museum of Science in Boston is using a variant of this code (for courses that imho are much more interesting than the statistics courses we have listed at MGH right now). See: https://openacs.org/forums/message-view?message_id=324851

Eventually (contingent on further internal funding) we will use this as the main course interface (Hamilton just created a parameter that allows replacement of the standard course add/drop interface) and start migrating groups in /dotlrn to OpenACS subsites and the new portals in the first half of 2006 (what I hope will become .LRN 3.0 "codename Whiteboard" - Don gets credit for that one).

Carl

P.S. We are also adding anonymous evaluation using assessment. Work started on that yesterday.

P.P.S. Feedback is greatly appreciated, both are under active development.

Collapse
29: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Hi Carl,

a test account would be great. I am looking forward to see how and to what extend you integrated with active directory. Also I am very interested to learn more about "Codename Whiteboard". Please let me know whether help is needed on that. I will have some resources here to support.

I personally believe that cleaning up dotLRN on the one hand (back to subsites and new portal), improving the interaction design for professors and students (course catalog, less clicks to access latest information) and reducing dotLRN dependencies on more general packages definetly the way to go. So many thanks for your post.

Greetings,
Nima

Collapse
Posted by Peter Alberer on
Rocael, could you find out WHY exactly those deadlocks are happening in the assessment package? I experienced similar problems but am not really sure why the deadlocks are appearing...
Collapse
31: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Rocael: nice documentation [*]. Can you explain what requests are?

Regarding actions:

[1] From what I understand an action is basically a tcl proc with parameters where the parameter values derive from an auto-generated form, right?

So the action cannot access information the user has indicated my processing the assessment so far, right?

[2] Actions seems not to have a return value that could be used for branching, terminating an assessment or redirection?

If I am correct on [1] then what do you think of that you can define action parameters or reference questions that were answered before the action is called.

Regarding [2] I have no idea yet but maybe a boolean would be even enough but then an action would behave like a decision node so where could be place the information what happens then?

[*] /doc/assessment/asm_trigger_doc/index.html

Collapse
Posted by Carl Robert Blesius on
Peter, we discovered the deadlock problem over the past few days as well and I asked Solution Grove to look into it. Looks like Roel was able to find a work-around yesterday (he added a while loop that will retry if it comes up):

http://xarg.net/tools/cvs/change-set-details?key=22801

Below is info I found in the Postgres Doc. Maybe Roel or Eduardo (the author in this case) could chime in the interest of incremental improvements? I am wondering if it had to do with a user double clicking or if it is more serious. I was actually doing some live usability testing when this came up on Monday and I think the person I was watching might have double clicked between sections (although she was not sure and I was not watching her hand).

Carl

"Use of explicit locking can cause deadlocks, wherein two (or more) transactions each hold locks that the other wants. For example, if transaction 1 acquires an exclusive lock on table A and then tries to acquire an exclusive lock on table B, while transaction 2 has already exclusive-locked table B and now wants an exclusive lock on table A, then neither one can proceed. PostgreSQL automatically detects deadlock situations and resolves them by aborting one of the transactions involved, allowing the other(s) to complete. (Exactly which transaction will be aborted is difficult to predict and should not be relied on.)

The best defense against deadlocks is generally to avoid them by being certain that all applications using a database acquire locks on multiple objects in a consistent order. One should also ensure that the first lock acquired on an object in a transaction is the highest mode that will be needed for that object. If it is not feasible to verify this in advance, then deadlocks may be handled on-the-fly by retrying transactions that are aborted due to deadlock.

So long as no deadlock situation is detected, a transaction seeking either a table-level or row-level lock will wait indefinitely for conflicting locks to be released. This means it is a bad idea for applications to hold transactions open for long periods of time (e.g., while waiting for user input)."

Collapse
33: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
What are quick and partial assessments?
Collapse
Posted by Peter Alberer on

I have also thought about double clicking as the cause of the problem, but i am not so sure now. Prior to our last big evaluation, i have added the following to the submit button in
packages/assessment/www/assessment-section-submit.adp:

input type=button value="assessment.Submit" onclick="this.form.submit(); this.disabled=true; this.value='Verarbeitung läuft...'; return true;"

The javascript code disables the submit button and the user cannot easily submit the form twice (maybe with the return button on the keyboard). Despite this change, we had the deadlocks appearing :(

Collapse
35: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
One question regarding deadlocks. I are trying to upgrade from 2.1.3 to 2.2 but once we do the kernel upgrade, restart the server and try to install all other packages we end up in a deadlock as soon as a scheduled proc starts running. Is this somehow related to this problem?
Collapse
36: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Carl: Which package takes care of the active directory sync? Does it have a UI on the test server I an look at?
Collapse
37: Deadlocks (response to 32)
Posted by Roel Canicula on
The deadlocks can still happen if two or more people access the same assessment at almost the same time (the double-click probably could have caused it if nobody else is accessing). I traced the deadlock to as::item_data::new which gets called for each question displayed in the assessment.

It easily deadlocked when I ran procs that called it concurrently and in a loop. I also saw deadlocks from as::session::new and as::session_data::new but less frequently.

At first we thought this was caused by nested transactions but I ran the procs without the transactions and they still deadlocked.

Dave suggested that it could be a problem with insert to view and that we try to replicate the problem with much simpler code to find out if the problem is with the CR itself. I'm going to try that later.

Collapse
Posted by Rocael Hernández Rizzardini on
Peter, I do know.
Is because the creation of CR items / revisions, which is heavily used in assessment. Also the db_transactions that locks the cr_item / revision tables are affecting as well.

Imagine you are serving an assessment with 20 questions, to 20 persons at the same time, and the creation of an new cr_item takes about 100 ms, that will end up in big delays to serve the request (if you increase the deadlock timeout) or you'll end having the deadlock. In this example, takes 2000 ms to create all the items of a given assessment, by 20 persons is about 40 seconds in total to create all the items requested at the same time, eventually you'll have deadlocks, and they will propagate among all the applications that might be using (creating / updating) cr_items / revisions at the same time.

Finally, intensive concurrent use of the CR is NOT scaling so far.

Collapse
40: Re: Assessment - urgent (response to 1)
Posted by Dave Bauer on
Rocael,

But why is anything being locked? Aren't we just inserting data into the database? I don't see why that causes a lock.

Collapse
Posted by Rocael Hernández Rizzardini on
The answer is to NOT use CR, specially when serving the assessment and for the answering, at least be able to turn it off.

Retry to process something is just good if you DO NOT even care having your users waiting long periods of time for the page to be served, something that you don't want specially when you aim to serve pages in less than 1 sec.

Collapse
42: Re: Assessment - urgent (response to 1)
Posted by Dave Bauer on
Well if the content repository is this broken, we should fix it, or remove it from OpenACS.

I think perhaps the way it is being used may be the issue, and it probably can be improved.

I still don't understand why inserts would lock a table. This doesn't seem to be necessary and if its happening, something is likely broken that can be fixed.

Collapse
Posted by Rocael Hernández Rizzardini on
1. You can access in your "tcl code" actions: values entered in the assessment or directly by queries to be presented to the end user.
2. Triggers are used for branching.
You can use both, actions & triggers.

Requests, are actions that will be executed after someone reviews it.
Play with it =)

Collapse
Posted by Rocael Hernández Rizzardini on
Dave, right, as I mentioned is as well related to transaction locking from the applications that use CR. Is a combination of intensive use of CR in locked transactions.

And certainly, some applications like assessment or evaluation do a lock just before creating, for instance, 20 cr_items.

Reducing the excesive use of CR specially in assessment, where sometimes is not needed at all, with careful use of db_transaction is something that we have been playing with.

So, if you get any application doing locks to the CR while doing many things, like creating cr_items, that will prevent the CR to scale well.

Collapse
44: Re: Assessment - urgent (response to 1)
Posted by Dave Bauer on
Why is assessment doing a lock before creating 20 items? Seems like a design problem. Even if you didn't use the CR you'd still have to insert all the data, so it doesn't seem the CR is inherently causing the issue.

If it is, I'd be very interetsed to know what about the CR causes this.

Roel is going to research more on our installation as well. I look forward to more information on what is causing this behavior.

I think if we can isolate the code, we can come up with a design that will work.

Collapse
Posted by Peter Alberer on
Have a look at this thread here: http://archives.postgresql.org/pgsql-general/2004-09/msg00442.php
The problem seems to come from a combination of a postgres "problem" with the intensive use of revisions in the assessment package.
Collapse
Posted by Peter Alberer on
Assessment is not doing an explicit lock anywhere, it is the foreign keys on the cr_items/cr_revisions table that are causing problems. When inserting a new submission, there is a new revision in cr_revisions, which causes the corresponding entry in the cr_items table to be locked.

Despite the fact that i know how a deadlock can appear in general, i am not sure why it happens that often in the assessments package. When 2 users are submitting the same assessment in the same moment, where the questions are in the same order, why would there be a deadlock?

Collapse
47: Re: Assessment - urgent (response to 1)
Posted by Dave Bauer on
Not having looked at the code. It seems like if two users can add a revision to the same cr_item, this would occur, as the trigger would try to update cr_items.latest_revision.

That said, I can't imagine why that would happen, and I think there definitely is a misunderstanding in how the CR should be used in the design of the assessment package.

Collapse
Posted by Peter Alberer on
What i do not understand about the design of the assessment packages is why submissions are put into the CR. In my understanding the CR is mainly for things where versioning is relevant. Are submissions to an assessment something where versioning is needed?
Collapse
Posted by Dave Bauer on
Peter,

Yes, in some cases, you want to have a history of edits to an assessment.

The survey package supported the same type of feature, but not based on the content repository. It has other performance issues in selecting the latest/correct survey submissions, although I don't recall any issues in inserting new responses.

Collapse
Posted by Malte Sussdorff on
Just to jump in into this discussion. Not sure if the design with CR items and revisions is wrong. Would be interesting to know though and get more detailed feedback where assumptions have been wrong and why.

Now, for something different. You are aware that you can turn of randomization and then the pages are served very fast as we do intelligent caching ?

Collapse
Posted by Carl Robert Blesius on
Re: Quick and Partial Assessments

I think quick and partial assessments was a unfinished attempt to offer a simplified/wizard interface to assessment (e.g. let's say you just want to do a quick poll and do not care about grading and the other 10-20 options on question/section creation). It needs to be reverted or finished.

Collapse
Posted by Carl Robert Blesius on
Re: Package with Active Directory Support

ACS-Authentication.

I commited documentation to oacs-5-2 before release (which I just dicovered is not the version labeled 5.2 on openacs.org/doc)

Here it is:

http://cvs.openacs.org/cvs/*checkout*/openacs-4/packages/acs-authentication/www/doc/ext-auth-ldap-install.html?rev=1.4.6.1

Please update and improve if possible Nima.

Collapse
53: Re: Assessment - urgent (response to 1)
Posted by Nima Mazloumi on
Carl: sorry I though you have synched course catalog and .LRN course creation with active directory or LDAP.