Difference between revisions of "Teacher Reporting"

From Sugar Labs
Jump to navigation Jump to search
Line 37: Line 37:
 
** Attempt to create a simple Moodle module extension which can be further built off of to provide further functionality.
 
** Attempt to create a simple Moodle module extension which can be further built off of to provide further functionality.
 
* Provide a script to move StudentParser.awk's output to ClassParser.awk's input
 
* Provide a script to move StudentParser.awk's output to ClassParser.awk's input
 
=="Wishlist Accomplishments "==
 
 
  
 
==Documentation & Resources==
 
==Documentation & Resources==
'''''StudentParser.awk''''' Input file format:
+
<img>http://achumpatoxford.com/u/files/331/0e82d68cfd2c88d8b6dec8d93d1ffd61.png</img>
<pre>
 
Field Structure:
 
"Mathematical Operation" "Correct?"
 
 
 
example:
 
45/67 y
 
</pre>
 
 
 
'''''StudentParser.awk''''' Output file format *Incomplete*
 
<pre>
 
Field Structure:
 
line 1: "Student MAC-Address"
 
line 2+: "Operation type" "correct in decimal"
 
 
 
example:
 
0:1e:8c:25:a0:c1
 
+ .86
 
- .84
 
x .91
 
/ .86
 
</pre>
 
 
 
'''''Grader.awk:'''''
 
<pre>
 
#!/usr/bin/awk
 
 
 
# grades -- average student grades and determine
 
# letter grade as well as class averages
 
# at the command line run: awk -f grader.awk grades.dat
 
 
 
BEGIN { OFS = "\t";    "date +%H:%M:%S" | getline current_time
 
    close("date +%H:%M:%S")
 
    print "Report printed on " current_time
 
}
 
 
 
# action applied to all input lines
 
{
 
# add up the grades
 
total = 0
 
for (i = 3; i <= NF; ++i) # i=3 skips first 2 fields - last name, first name
 
total+=$i
 
 
# calculate average
 
avg = total / (NF - 2)
 
 
# assign student's average to element of array
 
class_avg[NR] = avg
 
 
# determine letter grade
 
if (avg >= 90) grade="A"
 
else if (avg >= 80) grade="B"
 
else if (avg >= 70) grade="C"
 
else if (avg >= 60) grade="D"
 
else grade="F"
 
 
# increment counter for letter grade array
 
++class_grade[grade]
 
 
# print student first name, last name, average interger value, and letter grade
 
print $2 " " $1, int(avg), grade#, NF, NF
 
}
 
 
 
# print out class statistics
 
END  {
 
# calculate class average
 
for (x = 1; x <= NR; x++)
 
class_avg_total += class_avg[x]
 
class_average = class_avg_total / NR
 
 
# determine how many above/below average
 
for (x = 1; x <= NR; x++)
 
if (class_avg[x] >= class_average)
 
++above_average
 
else
 
++below_average
 
 
# print results
 
print ""
 
print "Class Average: ", class_average
 
print "At or Above Average: ", above_average
 
print "Below Average: ", below_average
 
 
# print number of students per letter grade
 
for (letter_grade in class_grade)
 
print letter_grade ":", class_grade[letter_grade]
 
 
 
}
 
</pre>
 
 
 
==Helpful stuff==
 

Revision as of 05:12, 1 May 2009

Description

A custom Moodle quiz module which, in addition to the standard Moodle quiz features, analyzes the questions posed to the student for various qualities, such as compliance with Curriculum Standards.

Group Members

Goals

  • Run Moodle with the modified quiz module on an XO running XS, The XO school Server.

Milestones

Week 8

  • Create Moodle data flow diagram to give an understanding of how the Moodle Server and corresponding database interact with Student and Teachers machines.
  • Have Moodle's latest stable release functioning in an XS School Server VirtualBox OSE Virtual Machine

Week 9

  • Have Moodle's latest stable release functioning on an XO running XS using the techniques outlined here.
  • Have PHP calls successfully querying mock student results from Moodle's MySQL database running on XS.
  • Parse mathematical-operation-based and tally percentage of success with each individual operation (+,-,/,* etc).
  • Parse mathematical operation and check for compliance with standard 4.P.3 Determine values of variables in simple equations, e.g., 4106 – x = 37, 5 = y + 3, and s – y = 3.

Week 10

Wes

  • Get StudentParser.awk to successfully calculate the accuracy for each mathematical operation, plus other relevant information TBD, one example will be success of division with remainders.
  • Get ClassParser.awk to successfully calculate class-wide statistics on the same information
  • Provide Grader.awk which grades each student, calculates a class average, tallys students in each grade interval.

Jeremiah

  • Create Moodle data flow diagram to give an understanding of how the Moodle Server and corresponding database interact with Student and Teachers machines.
  • Install Moodle server and DBMS on a test Virtual Machine.
    • Attempt PHP calls to the Moodle DBMS.
    • Attempt to create a simple Moodle module extension which can be further built off of to provide further functionality.
  • Provide a script to move StudentParser.awk's output to ClassParser.awk's input

Documentation & Resources

<img>0e82d68cfd2c88d8b6dec8d93d1ffd61.png</img>