Diff for /loncom/interface/loncoursedata.pm between versions 1.64 and 1.68

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 {

Removed from v.1.64  
changed lines
  Added in v.1.68


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>