Changes

Jump to navigation Jump to search
8,641 bytes removed ,  01:02, 6 June 2016
Obsolete
Line 1: Line 1:  +
{{Obsolete | Not part of 2016 Sugar}}
 +
 
{{TOCright}}
 
{{TOCright}}
 +
{{:Teacher_Reporting/status}}
 
==Description==
 
==Description==
   −
A custom [http://moodle.org/ Moodle] [http://docs.moodle.org/en/Quiz_module 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 [[User:Gdk/4th_Grade_Maths | Curriculum Standards]].
+
A custom [http://moodle.org/ Moodle] [http://docs.moodle.org/en/Quiz_module 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 [[Math4Team/Resources/Curriculum Chart | Curriculum Standards]].
    
The modified Moodle modules will run on a customized XS School Server operating system. Our goal is to allow results and / or grades, from student activities to be readily available to teachers. Based on their wants and needs, the teachers can then generate custom reports on a class or student and have the ability to determine what types of problems students are finding most difficult. In the end we imagine the XS environment running on an XO itself, allowing the teachers the same portability as the students.
 
The modified Moodle modules will run on a customized XS School Server operating system. Our goal is to allow results and / or grades, from student activities to be readily available to teachers. Based on their wants and needs, the teachers can then generate custom reports on a class or student and have the ability to determine what types of problems students are finding most difficult. In the end we imagine the XS environment running on an XO itself, allowing the teachers the same portability as the students.
 
==Collaboration==
 
==Collaboration==
   −
To help in code contribution of this project, please visit us at our [http://git.sugarlabs.org/projects/teacher-reporting Git]
+
To help in code contribution of this project, please visit us at our [http://git.sugarlabs.org/projects/teacher-reporting Gitorious project page.]
   −
==Group Members==
+
==Project Members==
 
* '''Project Manager:''' [[User:Wwdillingham | Wesley Dillingham]]  
 
* '''Project Manager:''' [[User:Wwdillingham | Wesley Dillingham]]  
* '''Additional Group Members:''' [[User:jrgreen118 | Jeremiah Green]]
+
* '''Additional Group Members:''' [[User:jrgreen118 | Jeremiah Green]], [[User:FGrose | Fred Grose]]
 
<br>
 
<br>
 +
 +
==Goals==
 +
*Expand upon the PHP of the Moodle Quiz Module to parse questions involving mathematical operations for characteristics contained in the [http://www.doe.mass.edu/frameworks/current.html Massachusetts Curriculum Framework for Mathematics.]
 +
*Run Moodle with the modified quiz module on an XO running [[olpc:School_server | XS]], The '''X'''O school '''S'''erver.
 +
*Have Moodle's latest stable release functioning on an XO running XS using the techniques outlined [[olpc:XS-on-XO | here]].
 +
*Have PHP calls successfully querying mock student results from Moodle's PostgreSQL database running on XS.
    
==Data Flow Diagram==
 
==Data Flow Diagram==
Line 18: Line 27:  
<br>
 
<br>
    +
==Curriculum Requirements and Relevant Activities==
   −
==Goals==
+
See [[Teacher Reporting/Math]].
*Expand upon the PHP of the Moodle Quiz Module to parse questions involving mathematical operations for characteristics contained in the [http://www.doe.mass.edu/frameworks/current.html Massachusetts Curriculum Framework for Mathematics.]
  −
*Parse mathematical-operation-based and tally percentage of success with each individual operation (+,-,/,* etc).
  −
 
  −
*Run Moodle with the modified quiz module on an XO running [[olpc:School_server | XS]], The '''X'''O school '''S'''erver.
  −
*Create Moodle data flow diagram to give an understanding of how the Moodle Server and corresponding database interact with Student and Teachers machines.
  −
*Have [http://download.moodle.org/ Moodle's latest stable release] functioning in an XS School Server [[olpc:XS-on-XO | VirtualBox]] OSE Virtual Machine
  −
*Have Moodle's latest stable release functioning on an XO running XS using the techniques outlined [[olpc:XS-on-XO | here]].
  −
*Have PHP calls successfully querying mock student results from Moodle's MySQL database running on XS.
      
=="How to Play/Use" for end user==
 
=="How to Play/Use" for end user==
Line 33: Line 35:  
Our project is not intended for a direct use by students. Components (not yet developed) under the scope of our project exist on students computer's in so far as facilitating the data movement from the XO to the XS. Therefore, there are no directions for students on how to use our application, it will be entirely transparent to them. When a student begins an activity which is compatible with our application, it will automatically report information to the API. Our application will then read this information from the API and produce reports to the teacher. We envision this interface to be web based, allowing the teacher to select particular games, and as a subcategory, the particular curriculum requirements in which that game uses.
 
Our project is not intended for a direct use by students. Components (not yet developed) under the scope of our project exist on students computer's in so far as facilitating the data movement from the XO to the XS. Therefore, there are no directions for students on how to use our application, it will be entirely transparent to them. When a student begins an activity which is compatible with our application, it will automatically report information to the API. Our application will then read this information from the API and produce reports to the teacher. We envision this interface to be web based, allowing the teacher to select particular games, and as a subcategory, the particular curriculum requirements in which that game uses.
   −
At this moment (5/18/2009) we only have a script which analyzes performance on particular mathematical operations and the students ability to understand order of operations.
+
 
    
In order to run this script (parser.awk) issue the command, <pre>awk -f parser.awk students.dat</pre>
 
In order to run this script (parser.awk) issue the command, <pre>awk -f parser.awk students.dat</pre>
Line 189: Line 191:     
==Documentation & Resources==
 
==Documentation & Resources==
 
+
===Related Projects or Proposals===
'''Installing MySQL:''' <br>
+
* [[Karma]]
[[image:ScreenInstalling.png]]
+
* [[olpc:Customizing Moodle to include efficient Examination Processes]]
 
+
* [http://wiki.sugarlabs.org/go/Teacher%27s_Tools Teacher's Tools]
== Code ==
  −
 
  −
Code (parser.awk) can be downloaded [http://www.filedropper.com/parser here] <br>
  −
Date file (students.dat) can be downloaded [http://www.filedropper.com/students here]
  −
<br>
  −
<br>
  −
 
  −
With data in the same directory and with your PWD also as the same directory.
  −
Issue the command @ the command line:
  −
<pre>awk -f parser.awk students.dat</pre>
  −
 
  −
 
  −
<br>
  −
'''Parser.awk:'''
  −
<pre>
  −
#Wesley Dillingham
  −
#Filename parser.awk
  −
#Last updated May 17th 2009
  −
 
  −
BEGIN{
  −
printf("%-11s%-8s%-11s%-8s%-11s%-8s%-11s%-8s%-11s%-11s\n", "Student", "Only +", "Contains +", "Only -", "Contains -", "Only
  −
*", "Contains *", "Only /", "Contains /", "Understands OoO?")
  −
}
  −
 
  −
{
  −
#*****Field Reference *************
  −
 
  −
#MAC=$1
  −
#NAME=$2
  −
#OPERATION=$3
  −
#SUCCESS=$4
  −
 
  −
#************************************
  −
 
  −
#Because in the end statement we will have to loop through one of the arrays, which will be localized according
  −
#to specific aritmetic operations (- + / *). We need to account for the fact that some students may not answer a
  −
#question with one of these operations, and if we looped through that particular operation, we would not represent
  −
#that student in any of the logic containted within that loop in the END{} statment. Therefore an associative array
  −
#which absolutely, accounts for any student, contained in the .dat, the CLASS[] array.
  −
CLASS[$2]
  −
 
  −
#any line that has division, but not necessarily just. 
  −
if ( match($3, /\//) )
  −
{
  −
#How many division problem student $2 encounters = divison[$2]
  −
division[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
division_correct[$2]++
  −
}
  −
}
  −
  −
#any line with multiplication but not  neccearily just multiplication
  −
if ( match($3, /\*/) )
  −
{
  −
#How many multiplication problem student $2 encounters = multiplication[$2]
  −
multiplication[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
multiplication_correct[$2]++
  −
}
  −
 
  −
}
  −
  −
#any line with addition but not necessarily just addition
  −
if ( match($3, /\+/) )
  −
{
  −
#How many addition problem student $2 encounters = addition[$2]
  −
addition[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
addition_correct[$2]++
  −
}
  −
}
  −
  −
#contains subtractions, excludes negative numbers, as it only matches expressions with a "-" sandwiched b/w two digits
  −
if ( match($3, /[0-9]\-[0-9]/) ) 
  −
{
  −
#How many subtraction problem student $2 encounters = subtraction[$2]
  −
subtraction[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
subtraction_correct[$2]++
  −
}
  −
}
  −
  −
 
  −
 
  −
# Matches operations with ONLY DIVISION
  −
if ( match($3, /\//) && !match($3, /[0-9]\-[0-9]/) && !match($3, /\+/) && !match($3, /\*/) )
  −
{
  −
 
  −
#How many ONLY division problem student $2 encounters = 0_divison[$2]
  −
o_division[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
o_division_correct[$2]++
  −
}
  −
 
  −
  −
}
  −
  −
# Matches operations with ONLY SUBTRACTION
  −
if (  !match($3, /\//) && match($3, /[0-9]\-[0-9]/) && !match($3, /\+/) && !match($3, /\*/) )
  −
{
  −
#How many ONLY subtraction problem student $2 encounters = o_subtraction[$2]
  −
o_subtraction[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
o_subtraction_correct[$2]++
  −
}
  −
  −
}
  −
  −
# Matches operations with ONLY ADDITION
  −
if (  !match($3, /\//) && !match($3, /[0-9]\-[0-9]/) && match($3, /\+/) && !match($3, /\*/) )
  −
{
  −
#How many ONLY Addition problem student $2 encounters = o_addition[$2]
  −
o_addition[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
o_addition_correct[$2]++
  −
}
  −
 
  −
}
  −
  −
# Matches operations with ONLY MULTIPLICATION
  −
if (  !match($3, /\//) && !match($3, /[0-9]\-[0-9]/) && !match($3, /\+/) && match($3, /\*/) )
  −
{
  −
#How many ONLY MULTIPLICATION problem student $2 encounters = o_multiplication[$2]
  −
o_multiplication[$2]++
  −
  −
if ( $4 == "1" )
  −
{
  −
o_multiplication_correct[$2]++
  −
}
  −
  −
}
  −
 
  −
#How many problems an individual student faced: for classwide statistics we simply use the built-in var NR
  −
numproblems[$2]++
  −
 
  −
#Determine if it is a compound operation if so increment by one, this requires 4 if's as we have to check if each of them exists in
  −
# conjuntion with another.
  −
#Keep track of total compounds and compounds correct.
  −
#Else-if structure required because if stringed If's were used each compound match would register twice.
  −
 
  −
if ( match($3, /\//) && ( match($3, /[0-9]\-[0-9]/) || match($3, /\+/) || match($3, /\*/) ) )
  −
{
  −
compound[$2]++
  −
  −
if ($4 == "1") #if correct
  −
{
  −
compound_correct[$2]++
  −
}
  −
}
  −
else if (  match($3, /[0-9]\-[0-9]/) && (match($3, /\//) || match($3, /\+/) || match($3, /\*/) ) )
  −
{
  −
compound[$2]++
  −
  −
if ($4 == "1") #if correct
  −
{
  −
compound_correct[$2]++
  −
}
  −
 
  −
}
  −
else if ( match($3, /\+/) && ( match($3, /[0-9]\-[0-9]/) || match($3, /\//) || match($3, /\*/) ) )
  −
{
  −
compound[$2]++
  −
  −
if ($4 == "1") #if correct
  −
{
  −
compound_correct[$2]++
  −
}
  −
}
  −
else if  ( match($3, /\*/) && ( match($3, /\+/) ||  match($3, /[0-9]\-[0-9]/) || match($3, /\//) ) )
  −
{
  −
compound[$2]++
  −
  −
if ($4 == "1") #if correct
  −
{
  −
compound_correct[$2]++
  −
}
  −
  −
}
  −
else # This allows for easy way to harness non compound statements, instead of going through a whole new slew of logic statements.  
  −
{
  −
 
  −
non_compound[$2]++
  −
  −
if ($4 == "1") #if correct
  −
{
  −
non_compound_correct[$2]++
  −
}
  −
 
  −
}
  −
 
  −
 
  −
if ( $4 == "1" )
  −
{totalcorrect[$2]++}
  −
  −
}#end of AWK_MAIN
  −
END{
  −
  −
 
  −
 
  −
#loops through all of the elements in the array CLASS[]
  −
#Here We will print out the students
  −
 
  −
for (student in CLASS)
  −
{
  −
 
  −
# A student doesnt understand order of operations if their is a greater than 20% difference in between compound
  −
# operations and single operation instructions, but only if lower on the compound instruction side.  
  −
# or if they get less than 70% on compounds, because getting a 51% on compounds and 70% on non compounds doesnt satisfy
  −
# understaning of OoO
  −
 
  −
if ( ( (non_compound_correct[student] / non_compound[student]) - (compound_correct[student] / compound[student]) > .2 ) ||
  −
( (non_compound_correct[student] / non_compound[student]) ) < .7)
  −
{
  −
understands= "no"
  −
}
  −
else
  −
{
  −
understands= "yes"
  −
}
  −
 
  −
 
  −
#need to address divide by 0 issue
  −
printf("%-11s%-8s%-11s%-8s%-11s%-8s%-11s%-8s%-11s%-11s\n", student,
  −
int(o_addition_correct[student]*100/o_addition[student]), int(addition_correct[student]*100/addition[student]),
  −
int(o_subtraction_correct[student]*100/o_addition[student]), int(subtraction_correct[student]*100/subtraction[student]),
  −
int(o_multiplication_correct[student]*100/o_multiplication[student]),
  −
int(multiplication_correct[student]*100/multiplication[student]), int(o_division_correct[student]*100/o_division[student]),
  −
int(division_correct[student]*100/division[student]), understands) 
  −
 
  −
 
  −
  −
}
  −
 
  −
} #end of AWK_END
  −
  −
 
  −
 
  −
</pre>
  −
 
  −
==After Class Plans==
  −
 
  −
===Wesley Dillingham===
  −
will continue this project into the summer as part of RIT's cooperative education program.
  −
 
  −
I am becoming more interested in a literal interpretation of the Massachusetts curriculum requirements and integrating them into moodle.  I would like to shoot for coming up with a modified quiz module which, reads from the api which in turn reads from multiple games in order to suffice the curriculum standards, As no one game has the format to test for all of the requirements. I will be developing using php, and my immediate goal, is to provide the raw capabilities in php to understand  and interpret information from the games to test understanding of guidelines. Bonus work includes, graphs, and other heuristics which the teacher may find valuable. I would like to work on helping the mathblaster game provide information relevant to my teacher reporting application via the API.
  −
 
  −
====Tenative summer shedule====
  −
*Week 1: Begin learning and understanding of PHP.
  −
*Week 2: Complete conversion of "Operations  awk script" into PHP.
  −
*Week 3: "Order of operations awk script" into PHP.
  −
*Week 4: Gain understanding of PHP's querying of MySQL, convert above PHP scripts to gain information via MySQL rather than input file
  −
*Week 6: Integrate above PHP scripts into Pre-existing quiz module.
  −
*Week 7 & 8: Identify, 2 or 3 additional curriculum standards find games which can be used, to satisfy requirements, create php logic, to interpret information gained through MySQl
  −
*Week 9: Work tangentially with mathblaster team and facilitate Mathblaster <> api and api <> teacher-reporter data exchange.
  −
*Week 10: Begin work on teacher interface. Wrap up project, plan for adanonment or continuation.,
  −
 
  −
===Jeremiah Green===
  −
will continue working on this project when time is available to devote.
  −
 
  −
*Get networking running on the XO.
  −
*Have Moodle running on the XO.
  −
*Have Database running on the XO.
 

Navigation menu