Difference between revisions of "Teacher Reporting"

From Sugar Labs
Jump to navigation Jump to search
(Obsolete)
 
(135 intermediate revisions by 6 users not shown)
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 [http://wiki.sugarlabs.org/go/User:Gdk/4th_Grade_Maths Curriculum Standards].
 
  
==Group Members==
+
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]].
* '''Project Manager''' [http://wiki.sugarlabs.org/go/User:Wwdillingham Wesley Dillingham]  
 
  
* '''Not The Project Manager''' [http://wiki.sugarlabs.org/go/User:jrgreen118 Jeremiah Green] will be responsible for automating the collective delivery of each student's game data (Student ID ,Problem, Correctness) to the Teachers XO. and format their results to allow for Wes's methods to compute the relevant class-wide statistics.
+
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==
 +
 
 +
To help in code contribution of this project, please visit us at our [http://git.sugarlabs.org/projects/teacher-reporting Gitorious project page.]
 +
 
 +
==Project Members==
 +
* '''Project Manager:''' [[User:Wwdillingham | Wesley Dillingham]]
 +
* '''Additional Group Members:''' [[User:jrgreen118 | Jeremiah Green]], [[User:FGrose | Fred Grose]]
 +
<br>
  
 
==Goals==
 
==Goals==
Using a combination of shell scripts, AWK, and Python we will be developing a system which reads in from a file, students identifiable information, the question itself (a mathematical operation), and the students correctness. From this studentinfo.dat file we will report to the teacher: Number of questions, total percent correct, percent correct for multiplication, division, addition, and subtraction.
+
*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==
 +
[[image:Teacher_Reporting_Diagram.jpg|800px|]]
 +
<br>
 +
 
 +
==Curriculum Requirements and Relevant Activities==
 +
 
 +
See [[Teacher Reporting/Math]].
 +
 
 +
=="How to Play/Use" for end user==
 +
 
 +
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.
 +
 
  
==Week by week milestones==
 
*Week 8: Have both scripts succesfully tabulating relevant information
 
  
*Week 9 :Have student to teacher data information transfer succesfully functioning with scripts.
+
In order to run this script (parser.awk) issue the command, <pre>awk -f parser.awk students.dat</pre>
  
*Week 10: Have integration with kuku, and a gui for teachers data retrieval.
+
== Teachers guide ==
  
=="Required Accomplishment"==
+
Student.dat file fields:<pre>
 +
MAC-ADDRESS STUDENT_NAME OPERATION CORRECT
 +
</pre>
  
===Wes===
+
Example:<pre>
*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.
+
0C7B6G0023BC Wesley 9/3+7 1
*Get ClassParser.awk to successfully calculate class-wide statistics on the same information
+
0C7B6G04DBBA Jeremiah 4+10/7 0
*Provide Grader.awk which grades each student, calculates a class average, tallys students in each grade interval.
+
0C7B6GBA5D7D Billy 88-28*2 0
 +
0C7B6G07E9HB Bob 4*5 1
 +
</pre>
  
===Jeremiah===
+
Ouput Example: <pre>Student    Only +  Contains + Only -  Contains - Only *  Contains * Only /  Contains / Understands OoO?
* Create Moodle data flow diagram to give an understanding of how the Moodle Server and corresponding database interact with Student and Teachers machines.
+
wes        25      28        12      100        80      83        71      53        no       
* Install Moodle server and DBMS on a test Virtual Machine.
+
bob        80      77        0      66        100    100        33      60        yes       
** Attempt PHP calls to the Moodle DBMS.
+
jeremiah  0      0          16      33        40      50        14      33        no       
** Attempt to create a simple Moodle module extension which can be further built off of to provide further functionality.
+
billy      66      70        33      53        50      37        100    80        yes       
* Provide a script to move StudentParser.awk's output to ClassParser.awk's input
+
</pre>
 +
''note: This output is not reflective of the student.dat example data above''
  
=="Wishlist Accomplishments "==
 
  
 +
==XS SchoolServer on the XO==
  
==Links & Resources==
+
A major barrier to achieving our goals is the idea that the School Server needs the ability to be versatile and portable. While some may have resources to dedicate substantial hardware to such a server, others may find themselves with nothing more than the XO laptops. From this stems the idea of running this server on one of the XO laptops via either a USB flash drive, SD card, or the internal NAND hard drive.
'''''StudentParser.awk''''' Input file format:
+
 
 +
 
 +
When fully installed on an SD card, the base operating system takes up about 1.6GB. There is a small amount of documentation available which is excellent and extremely helpful, but it can be difficult to use at times. Below is a quick break down of what we did and how to replicate it.
 +
 
 +
====How To:====
 +
 
 +
The most helpful website to read before beginning can be found here: [http://wiki.laptop.org/go/XS-on-XO Laptop.org's XS-on-XO.]
 +
 
 +
=====Necessary hardware to replicate our setup includes:=====
 +
*XO Laptop
 +
*Linux Computer with SD Card Reader
 +
**Can be physical machine or virtual. Also, some things can be done in Windows.
 +
*SD card which is at least 4GB (We used an 8GB A-DATA SDHC)
 +
 
 +
=====Un-compress the image:=====
 +
*Download the image file: [http://xs-dev.laptop.org/xs/other/OLPC-School-Server-0.5.2-dev01-i386.img.gz OLPC-School-Server-0.5.2-dev01-i386.img.gz]
 +
*Un-compress the file
 +
**In Windows, [http://www.rarlab.com/download.htm WinRAR] worked well.
 +
**In Linux, this command works just as well<pre>gzip -d OLPC-School-Server-0.5.2-dev01-i386.img.gz</pre>
 +
 
 +
=====Setting Up the Environment=====
 +
With the SD card connected to the Linux PC:
 +
*Using a tool of your choice format the SD card to ext2 or ext3 (Linux 83).
 +
**Gparted was excellent for formating the SD card to ext3, but fdisk would also work.
 +
*Mark the partition with the boot flag
 +
**This can be done using gparted, but in several instances errors were experienced. In lieu fdisk works great.
 +
**To enter fdisk, use
 
<pre>
 
<pre>
Field Structure:
+
fdisk /dev/sd*1
"Mathematical Operation" "Correct?"
+
or
 +
fdisk /dev/mmcblk*p1
 +
</pre>
 +
*where * is the letter associated with the SD device and the 1 is the partition. Once in fdisk, use the help to determine the specific command to mark the boot flag. In most instances it will be "a".
 +
*Next ensure the .img file, uncompressed previously, is accessible by the Linux machines.
 +
*Use the command,
 +
<pre>
 +
dd if=OLPC-School-Server-0.5.2-dev01-i386.img of=/dev/sd*1
 +
or
 +
dd if=OLPC-School-Server-0.5.2-dev01-i386.img of=/dev/mmcblk*p1
 +
</pre>
 +
**This will take some time depending on the system performance.
 +
*Use resize2fs to re-size the partition
 +
<pre>
 +
resize2fs -p /dev/sd*1
 +
or
 +
resize2fs -p /dev/mmcblk*p1
 +
</pre>
  
example:
+
=====Getting a Developer Key=====
45/67 y
+
*First the XO must have a [http://wiki.laptop.org/go/Activation_and_Developer_Keys developer's key!!!]
 +
*The easiest way to go about obtaining this is to boot into the XO's Sugar OS. Open the browse application. Near the bottom right of the home page, there will be a link for "Get a Developer Key".
 +
**Click this link and on the next page click the "Submit Query." Go through this process again after 24 hours and the key should be available.
 +
**Upon return follow the directions displayed to download the key.
 +
*Reboot the XO and tap the "Esc" key to interrupt the booting procedure. At the ok prompt type: <pre>ok disable-security</pre>
 +
**The machine will probably reboot. If so, tap the "Esc" key and type the above command again. It may reboot one final time.
 +
**Upon this reboot tap the "Esc" key again and type the above command a final time. It should print out:
 +
<pre>
 +
ok disable-security
 +
No wp tag
 
</pre>
 
</pre>
  
'''''StudentParser.awk''''' Output file format *Incomplete*
+
=====Booting the XO from the SD=====
 +
More than likely, this will not work right away, most implementations require some tweaking prior to properly booting.
 +
*With the SD card inserted in the XO, turn the machine on and press the "Esc" key to interrupt start-up.
 +
*At the prompt type:
 +
<pre>
 +
ok boot sd:\boot\olpc.fth
 +
</pre>
 +
*It should attempt the boot sequence, but more than likely will fail with a Kernel Panic!!!....error
 +
*This is almost expected, but it's actually an important step. If you look further up on the screen, you should see an error in regards to mounting the file system.
 +
*Around this area, you should also see a list of strange numbers (i.e. b102:) followed by devices (i.e. ramdisk...)
 +
*Find the row for your SD card, it should be labeled something like:
 
<pre>
 
<pre>
Field Structure:
+
b301:       mmcblk0p1
line 1: "Student MAC-Address"
+
</pre>
line 2+: "Operation type" "correct in decimal"
+
*Remember the b301 number.
 +
*Connect the SD card back to the Linux PC.
 +
*Open the file /boot/olpc.fth
 +
**Here's a quick resource on what this is [http://wiki.laptop.org/go/SD_Boot_olpc.fth SD Booting].
 +
*You'll see a line like this:
 +
<pre>
 +
" ro root=mmcblk0p1 rootdelay=1 console=ttyS0,115200 console=tty0
 +
rootfstype=ext2 fbcon=font:SUN12x22" to boot-file
 +
</pre>
 +
*Change the "root=******" to be the variable recorded earlier.
 +
*Save the changes and put the SD card back in the XO. Reboot the machine and at the prompt again type:
 +
<pre>
 +
ok boot sd:\boot\olpc.fth
 +
</pre>
  
example:
+
=====Post XS School Server Installation Configuration:=====
0:1e:8c:25:a0:c1
+
The following are commands that were run after installing XS on a Virtual Machine. Idealy, the newly configured SD card can now act as the operating system for the Virtual Machine allowing further versatility.  
+ .86
 
- .84
 
x .91
 
/ .86
 
</pre>
 
  
'''''Grader.awk:'''''
 
 
<pre>
 
<pre>
#!/usr/bin/awk
+
yum groupinstall "GNOME Desktop Environment"
 +
 
 +
edit /etc/inittab and change runlevel from 3 to 5 to startup in Gnome
 +
 
 +
yum install mysql-server php php-mysql php-mbstring php-gd php-xmlrpc php-imap cvs
  
# grades -- average student grades and determine
+
service mysqld start
# letter grade as well as class averages
+
mysqladmin -u root password 'mySecurePassword'
# at the command line run: awk -f grader.awk grades.dat
+
mysql -u root -p
 +
mysql> CREATE DATABASE moodle CHARSET 'utf8';
 +
mysql> exit;
 +
chkconfig mysqld on
 +
--starts sql server; adds root admin user; logs into server and creates DB;
 +
--turns the service on on boot.
  
BEGIN { OFS = "\t";    "date +%H:%M:%S" | getline current_time
+
cd /var/www
    close("date +%H:%M:%S")
+
cvs -z3 -d:pserver:anonymous@eu.cvs.moodle.org:/cvsroot/moodle co -r MOODLE_19_STABLE moodle
    print "Report printed on " current_time
+
--download and install/update with the latest version of moodle
}
 
  
# action applied to all input lines
+
mkdir moodledata
{
+
chown -R apache:apache moodle
# add up the grades
+
chown -R apache:apache moodledata
total = 0
+
--make directory in /var/www/ and change permissions.
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
+
edit the file /etc/httpd/conf/httpd.conf
END  {
+
change DocumentRoot "/var/www/html" to DocumentRoot "/var/www/moodle"
# calculate class average
+
change <Directory "/var/www/html"> to <Directory "/var/www/moodle">
for (x = 1; x <= NR; x++)
+
then you must restart the apache server by issuing the command:
class_avg_total += class_avg[x]
+
service httpd restart
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>
 
</pre>
  
==Helpful stuff==
+
==Documentation & Resources==
 +
===Related Projects or Proposals===
 +
* [[Karma]]
 +
* [[olpc:Customizing Moodle to include efficient Examination Processes]]
 +
* [http://wiki.sugarlabs.org/go/Teacher%27s_Tools Teacher's Tools]

Latest revision as of 00:02, 6 June 2016

Stop hand.png NOTE:
The content of this page is considered
DEPRECATED and OBSOLETE
It is preserved for historical research, along with its talk page.

Not part of 2016 Sugar


Status: Unknown
Unknown
Group Members: Wesley Dillingham, Jeremiah Green, Fred Grose
Our goal is to allow results and / or grades, from student activities to be readily available to teachers.

- Based on their wants and needs,teachers can then generate custom reports on a class or Individual. Teachers Have the ability to determine what types of problems students are finding most difficult. - Additionally we envision logic in the module which analyses student activity and checks for a yes

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.

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

To help in code contribution of this project, please visit us at our Gitorious project page.

Project Members


Goals

  • Expand upon the PHP of the Moodle Quiz Module to parse questions involving mathematical operations for characteristics contained in the Massachusetts Curriculum Framework for Mathematics.
  • Run Moodle with the modified quiz module on an XO running XS, The XO school Server.
  • 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 PostgreSQL database running on XS.

Data Flow Diagram

Teacher Reporting Diagram.jpg

Curriculum Requirements and Relevant Activities

See Teacher Reporting/Math.

"How to Play/Use" for end user

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.


In order to run this script (parser.awk) issue the command,
awk -f parser.awk students.dat

Teachers guide

Student.dat file fields:
MAC-ADDRESS STUDENT_NAME OPERATION CORRECT
Example:
0C7B6G0023BC Wesley 9/3+7 1
0C7B6G04DBBA Jeremiah 4+10/7 0
0C7B6GBA5D7D Billy 88-28*2 0
0C7B6G07E9HB Bob 4*5 1
Ouput Example:
Student    Only +  Contains + Only -  Contains - Only *  Contains * Only /  Contains / Understands OoO?
wes        25      28         12      100        80      83         71      53         no         
bob        80      77         0       66         100     100        33      60         yes        
jeremiah   0       0          16      33         40      50         14      33         no         
billy      66      70         33      53         50      37         100     80         yes        

note: This output is not reflective of the student.dat example data above


XS SchoolServer on the XO

A major barrier to achieving our goals is the idea that the School Server needs the ability to be versatile and portable. While some may have resources to dedicate substantial hardware to such a server, others may find themselves with nothing more than the XO laptops. From this stems the idea of running this server on one of the XO laptops via either a USB flash drive, SD card, or the internal NAND hard drive.


When fully installed on an SD card, the base operating system takes up about 1.6GB. There is a small amount of documentation available which is excellent and extremely helpful, but it can be difficult to use at times. Below is a quick break down of what we did and how to replicate it.

How To:

The most helpful website to read before beginning can be found here: Laptop.org's XS-on-XO.

Necessary hardware to replicate our setup includes:
  • XO Laptop
  • Linux Computer with SD Card Reader
    • Can be physical machine or virtual. Also, some things can be done in Windows.
  • SD card which is at least 4GB (We used an 8GB A-DATA SDHC)
Un-compress the image:
Setting Up the Environment

With the SD card connected to the Linux PC:

  • Using a tool of your choice format the SD card to ext2 or ext3 (Linux 83).
    • Gparted was excellent for formating the SD card to ext3, but fdisk would also work.
  • Mark the partition with the boot flag
    • This can be done using gparted, but in several instances errors were experienced. In lieu fdisk works great.
    • To enter fdisk, use
fdisk /dev/sd*1
or
fdisk /dev/mmcblk*p1
  • where * is the letter associated with the SD device and the 1 is the partition. Once in fdisk, use the help to determine the specific command to mark the boot flag. In most instances it will be "a".
  • Next ensure the .img file, uncompressed previously, is accessible by the Linux machines.
  • Use the command,
dd if=OLPC-School-Server-0.5.2-dev01-i386.img of=/dev/sd*1
or
dd if=OLPC-School-Server-0.5.2-dev01-i386.img of=/dev/mmcblk*p1
    • This will take some time depending on the system performance.
  • Use resize2fs to re-size the partition
resize2fs -p /dev/sd*1
or
resize2fs -p /dev/mmcblk*p1
Getting a Developer Key
  • First the XO must have a developer's key!!!
  • The easiest way to go about obtaining this is to boot into the XO's Sugar OS. Open the browse application. Near the bottom right of the home page, there will be a link for "Get a Developer Key".
    • Click this link and on the next page click the "Submit Query." Go through this process again after 24 hours and the key should be available.
    • Upon return follow the directions displayed to download the key.
  • Reboot the XO and tap the "Esc" key to interrupt the booting procedure. At the ok prompt type:
    ok disable-security
    • The machine will probably reboot. If so, tap the "Esc" key and type the above command again. It may reboot one final time.
    • Upon this reboot tap the "Esc" key again and type the above command a final time. It should print out:
ok disable-security
No wp tag
Booting the XO from the SD

More than likely, this will not work right away, most implementations require some tweaking prior to properly booting.

  • With the SD card inserted in the XO, turn the machine on and press the "Esc" key to interrupt start-up.
  • At the prompt type:
ok boot sd:\boot\olpc.fth
  • It should attempt the boot sequence, but more than likely will fail with a Kernel Panic!!!....error
  • This is almost expected, but it's actually an important step. If you look further up on the screen, you should see an error in regards to mounting the file system.
  • Around this area, you should also see a list of strange numbers (i.e. b102:) followed by devices (i.e. ramdisk...)
  • Find the row for your SD card, it should be labeled something like:
b301:       mmcblk0p1
  • Remember the b301 number.
  • Connect the SD card back to the Linux PC.
  • Open the file /boot/olpc.fth
    • Here's a quick resource on what this is SD Booting.
  • You'll see a line like this:
" ro root=mmcblk0p1 rootdelay=1 console=ttyS0,115200 console=tty0 
rootfstype=ext2 fbcon=font:SUN12x22" to boot-file
  • Change the "root=******" to be the variable recorded earlier.
  • Save the changes and put the SD card back in the XO. Reboot the machine and at the prompt again type:
ok boot sd:\boot\olpc.fth
Post XS School Server Installation Configuration:

The following are commands that were run after installing XS on a Virtual Machine. Idealy, the newly configured SD card can now act as the operating system for the Virtual Machine allowing further versatility.

yum groupinstall "GNOME Desktop Environment"

edit /etc/inittab and change runlevel from 3 to 5 to startup in Gnome

yum install mysql-server php php-mysql php-mbstring php-gd php-xmlrpc php-imap cvs

service mysqld start
mysqladmin -u root password 'mySecurePassword'
mysql -u root -p
mysql> CREATE DATABASE moodle CHARSET 'utf8';
mysql> exit;
chkconfig mysqld on
--starts sql server; adds root admin user; logs into server and creates DB; 
--turns the service on on boot.

cd /var/www
cvs -z3 -d:pserver:anonymous@eu.cvs.moodle.org:/cvsroot/moodle co -r MOODLE_19_STABLE moodle
--download and install/update with the latest version of moodle

mkdir moodledata
chown -R apache:apache moodle
chown -R apache:apache moodledata
--make directory in /var/www/ and change permissions.

edit the file /etc/httpd/conf/httpd.conf
change DocumentRoot "/var/www/html" to DocumentRoot "/var/www/moodle"
change <Directory "/var/www/html"> to <Directory "/var/www/moodle">
then you must restart the apache server by issuing the command:
service httpd restart

Documentation & Resources

Related Projects or Proposals