version 1.64, 2003/03/28 15:19:35
|
version 1.68, 2003/04/11 15:14:25
|
Line 104 sub get_sequence_assessment_data {
|
Line 104 sub get_sequence_assessment_data {
|
my $fn=$ENV{'request.course.fn'}; |
my $fn=$ENV{'request.course.fn'}; |
## |
## |
## use navmaps |
## use navmaps |
my $navmap = Apache::lonnavmaps::navmap->new(Apache->request,$fn.".db", |
my $navmap = Apache::lonnavmaps::navmap->new($fn.".db", |
$fn."_parms.db",1,0); |
$fn."_parms.db",1,0); |
if (!defined($navmap)) { |
if (!defined($navmap)) { |
return 'Can not open Coursemap'; |
return 'Can not open Coursemap'; |
Line 1039 sub get_student_data_from_performance_ca
|
Line 1039 sub get_student_data_from_performance_ca
|
"LEFT JOIN $symb_table AS d ON d.symb_id = a.symb_id ". |
"LEFT JOIN $symb_table AS d ON d.symb_id = a.symb_id ". |
"WHERE student='$student'"; |
"WHERE student='$student'"; |
if (defined($symb) && $symb ne '') { |
if (defined($symb) && $symb ne '') { |
$request .= " AND d.symb='".$dbh->quote($symb)."'"; |
$request .= " AND d.symb=".$dbh->quote($symb); |
} |
} |
} elsif (defined($symb) && $symb ne '') { |
} elsif (defined($symb) && $symb ne '') { |
$request .= "FROM $symb_table as d ". |
$request .= "FROM $symb_table as d ". |
Line 1070 sub get_student_data_from_performance_ca
|
Line 1070 sub get_student_data_from_performance_ca
|
$studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail; |
$studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail; |
$studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne ''); |
$studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne ''); |
} |
} |
|
if (defined($symb) && $symb ne '') { |
|
$studentdata = $studentdata->{$symb}; |
|
} |
return $studentdata; |
return $studentdata; |
} |
} |
|
|
Line 1121 sub get_current_state {
|
Line 1124 sub get_current_state {
|
my ($status,$data) = &ensure_current_data($sname,$sdom,$courseid); |
my ($status,$data) = &ensure_current_data($sname,$sdom,$courseid); |
# |
# |
if (defined($data)) { |
if (defined($data)) { |
return %$data; |
if (defined($symb)) { |
|
return %{$data->{$symb}}; |
|
} else { |
|
return %$data; |
|
} |
} elsif ($status eq 'no data') { |
} elsif ($status eq 'no data') { |
return (); |
return (); |
} else { |
} else { |
Line 1163 Each hash must contain at least the 'use
|
Line 1170 Each hash must contain at least the 'use
|
|
|
=back |
=back |
|
|
Outputs: See the code for up to date information. |
Outputs: See the code for up to date information. A hash reference is |
|
returned. The hash has the following keys defined: |
|
|
=over 4 |
=over 4 |
|
|
=item $num The number of students attempting the problem |
=item num_students The number of students attempting the problem |
|
|
=item $tries The total number of tries for the students |
=item tries The total number of tries for the students |
|
|
=item $mod The maximum number of tries taken |
=item max_tries The maximum number of tries taken |
|
|
=item $mean The average number of tries |
=item mean_tries The average number of tries |
|
|
=item $Solved The number of students able to solve the problem |
=item num_solved The number of students able to solve the problem |
|
|
=item $solved The number of students whose answer is 'correct_by_override' |
=item num_override The number of students whose answer is 'correct_by_override' |
|
|
=item $DegOfDiff The degree of difficulty of the problem |
=item deg_of_diff The degree of difficulty of the problem |
|
|
=item $STD The standard deviation of the number of tries |
=item std_tries The standard deviation of the number of tries |
|
|
|
=item skew_tries The skew of the number of tries |
|
|
=item $SKEW The skew of the number of tries |
=item per_wrong The number of students attempting the problem who were not |
|
able to answer it correctly. |
|
|
=back |
=back |
|
|
Line 1247 sub get_problem_statistics {
|
Line 1258 sub get_problem_statistics {
|
$solved = 0 if (! defined($solved)); |
$solved = 0 if (! defined($solved)); |
# |
# |
my $DegOfDiff = 'nan'; |
my $DegOfDiff = 'nan'; |
$DegOfDiff = 1-($Solved + $solved)/$tries if ($tries>0); |
$DegOfDiff = 1-($Solved)/$tries if ($tries>0); |
|
|
my $SKEW = 'nan'; |
my $SKEW = 'nan'; |
|
my $wrongpercent = 0; |
if ($num > 0) { |
if ($num > 0) { |
($SKEW) = &execute_SQL_request($dbh,'SELECT SQRT(SUM('. |
($SKEW) = &execute_SQL_request($dbh,'SELECT SQRT(SUM('. |
'POWER(tries - '.$STD.',3)'. |
'POWER(tries - '.$STD.',3)'. |
'))/'.$num.' FROM '.$stats_table); |
'))/'.$num.' FROM '.$stats_table); |
|
$wrongpercent=int(10*100*($num-$Solved+$solved)/$num)/10; |
} |
} |
# |
# |
$dbh->do('DROP TABLE '.$stats_table); # May return an error |
$dbh->do('DROP TABLE '.$stats_table); # May return an error |
return ($num,$tries,$mod,$mean,$Solved,$solved,$DegOfDiff,$STD,$SKEW); |
return { num_students => $num, |
|
tries => $tries, |
|
max_tries => $mod, |
|
mean_tries => $mean, |
|
std_tries => $STD, |
|
skew_tries => $SKEW, |
|
num_solved => $Solved, |
|
num_override => $solved, |
|
per_wrong => $wrongpercent, |
|
deg_of_diff => $DegOfDiff } |
} |
} |
|
|
sub execute_SQL_request { |
sub execute_SQL_request { |