ࡱ > , @ B ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? X j @ a jbjb 2 CX M A l
! ! ! ! 8 (" , T$ 4 ! > 0 ? ( ? ? ? B 2 Z oa ` , T t n ) d #B ^ B d d ) b b ? ? 7 0 d b R ? ? @ *
@ " @ b b d F ˇ l i " , L h% ! ! mg /x * > > 7y The Guts of LON-CAPA
Workshop
Michigan State University
June 10th-12th, 2002
This project is funded in part by the
National Science Foundation under ITR 0085921,
with additional support by the
Andrew W. Mellon and Alfred P. Sloan foundations.
HYPERLINK "http://www.lon-capa.org/" http://www.lon-capa.org/
(517) 432-5468
Guy Albertelli, HYPERLINK "mailto:albertel@msu.edu" albertel@msu.edu
Gerd Kortemeyer, HYPERLINK "mailto:korte@lon-capa.org" korte@lon-capa.org
Scott Harrison, freeware volunteer, HYPERLINK "mailto:sharrison@sourceforge.net" sharrison@sourceforge.net
Project Manager: Helen Keefe, HYPERLINK "mailto:helen@loncapa.org" helen@loncapa.org
LON-CAPA Coordinator: Felicia Berryman, HYPERLINK "mailto:felicia@lon-capa.org" felicia@lon-capa.org
Installation site: HYPERLINK "http://install.lon-capa.org/" http://install.lon-capa.org/
Mailing lists: HYPERLINK "http://mail.lon-capa.org/" http://mail.lon-capa.org/
User help: HYPERLINK "http://help.lon-capa.org/" http://help.lon-capa.org/
Bugs and enhancements: HYPERLINK "http://bugs.lon-capa.org/" http://bugs.lon-capa.org/
TOC \o "1-3"
Day 1 PAGEREF _Toc421867038 \h 6
Session One: Intro/Demo, lonc/d, Replication and Load Balancing (Gerd) PAGEREF _Toc421867039 \h 6
Overview PAGEREF _Toc421867040 \h 7
Example of Transactions PAGEREF _Toc421867041 \h 7
lonc/lond/lonnet PAGEREF _Toc421867042 \h 7
Scalability and Performance Analysis PAGEREF _Toc421867043 \h 10
Dynamic Resource Replication PAGEREF _Toc421867044 \h 12
Session Two: Apache Handlers (loncapa_apache.conf), Authentication and Access Control, Session Environment (Matthew) PAGEREF _Toc421867045 \h 16
Server Content Resource Areas PAGEREF _Toc421867046 \h 16
Apache Request Cycle and Handlers PAGEREF _Toc421867047 \h 16
Handler Definition PAGEREF _Toc421867048 \h 17
Authentication Overview PAGEREF _Toc421867049 \h 18
Authentication Mechanisms, User Data, Passwords PAGEREF _Toc421867050 \h 19
Environment PAGEREF _Toc421867051 \h 19
Handler Reference: LON-CAPA and the 77 Web Perl Modules PAGEREF _Toc421867052 \h 22
Session Three: Roles and lonnet/loncommon useful functions (Guy) PAGEREF _Toc421867053 \h 29
NAME PAGEREF _Toc421867054 \h 29
SYNOPSIS PAGEREF _Toc421867055 \h 29
INTRODUCTION PAGEREF _Toc421867056 \h 29
RETURN MESSAGES PAGEREF _Toc421867057 \h 29
Session Environment Functions PAGEREF _Toc421867058 \h 30
User Information PAGEREF _Toc421867059 \h 30
User Roles PAGEREF _Toc421867060 \h 30
User Modification PAGEREF _Toc421867061 \h 30
Course Infomation PAGEREF _Toc421867062 \h 31
Course Modification PAGEREF _Toc421867063 \h 31
Resource Subroutines PAGEREF _Toc421867064 \h 31
Resource Information PAGEREF _Toc421867065 \h 31
Storing/Retrieving Data PAGEREF _Toc421867066 \h 32
Network Status Functions PAGEREF _Toc421867067 \h 33
Apache Request PAGEREF _Toc421867068 \h 33
Data to String to Data PAGEREF _Toc421867069 \h 33
Logging Routines PAGEREF _Toc421867070 \h 34
General File Helper Routines PAGEREF _Toc421867071 \h 34
HTTP Helper Routines PAGEREF _Toc421867072 \h 34
Private: Underlying communication routines (Shouldn't call) PAGEREF _Toc421867073 \h 34
Private: Resource Access Logging PAGEREF _Toc421867074 \h 35
Private: Other PAGEREF _Toc421867075 \h 35
Coding Guidelines PAGEREF _Toc421867076 \h 35
Session Four: How to install, Proper Debug Cycle for Handlers, Coding/Documentation Guidelines (Guy) PAGEREF _Toc421867077 \h 36
lpml.dtd PAGEREF _Toc421867078 \h 36
piml.dtd PAGEREF _Toc421867079 \h 38
xfml.dtd PAGEREF _Toc421867080 \h 40
Session Five: Worktime (make new handler, debugging/testing) (Guy) PAGEREF _Toc421867081 \h 41
Day 2 PAGEREF _Toc421867082 \h 42
Session One: Roles, Data Storage, Parameters (Gerd) PAGEREF _Toc421867083 \h 42
Domains PAGEREF _Toc421867084 \h 42
Userdata PAGEREF _Toc421867085 \h 42
Courses PAGEREF _Toc421867086 \h 43
Roles PAGEREF _Toc421867087 \h 43
Custom Roles PAGEREF _Toc421867088 \h 44
Choose a Role, Role Privileges PAGEREF _Toc421867089 \h 44
Role Initialization PAGEREF _Toc421867090 \h 46
Session Two: Spreadsheet and Messaging (Matthew) PAGEREF _Toc421867091 \h 48
Spreadsheets PAGEREF _Toc421867092 \h 48
Spreadsheet Structure and Hierarchy PAGEREF _Toc421867093 \h 48
Export Rows PAGEREF _Toc421867094 \h 49
Assessment Spreadsheet PAGEREF _Toc421867095 \h 49
Student Spreadsheet PAGEREF _Toc421867096 \h 50
Course Spreadsheet PAGEREF _Toc421867097 \h 50
Spreadsheet definition PAGEREF _Toc421867098 \h 51
Template Row PAGEREF _Toc421867099 \h 51
What goes in a cell PAGEREF _Toc421867100 \h 52
Parameter Access PAGEREF _Toc421867101 \h 52
Addressing other cells PAGEREF _Toc421867102 \h 52
The Safe Environment PAGEREF _Toc421867103 \h 53
Change is coming PAGEREF _Toc421867104 \h 53
Discussion PAGEREF _Toc421867105 \h 54
Messaging PAGEREF _Toc421867106 \h 55
Resource Feedback PAGEREF _Toc421867107 \h 56
Session Three: Publication, Content Maps, Course Maps (Gerd) PAGEREF _Toc421867108 \h 56
Publication of a Resource PAGEREF _Toc421867109 \h 56
Content Re-usage and Granularity PAGEREF _Toc421867110 \h 57
Maps PAGEREF _Toc421867111 \h 58
Curriculum Adaptivity PAGEREF _Toc421867112 \h 58
Resource Assembly Tool PAGEREF _Toc421867113 \h 59
Map Representation and Storage Format PAGEREF _Toc421867114 \h 61
Example of Nested Maps PAGEREF _Toc421867115 \h 62
Initialization of a Course for a Learner PAGEREF _Toc421867116 \h 65
Evaluation of the Map Structure for a Course PAGEREF _Toc421867117 \h 66
Paths and Path Conditions PAGEREF _Toc421867118 \h 70
Multivalued Boolean Evaluation of Link Priorities PAGEREF _Toc421867119 \h 73
Session Four: XML Handler (Simple tags, Globals, Multiple Targets, Style Files) (Guy) PAGEREF _Toc421867120 \h 74
XML Files PAGEREF _Toc421867121 \h 74
Style Files PAGEREF _Toc421867122 \h 76
HTML::LCParser - Alternative HTML::Parser interface PAGEREF _Toc421867123 \h 77
Session Five: Worktime (Guy) PAGEREF _Toc421867124 \h 80
Day 3 PAGEREF _Toc421867125 \h 81
Session One: Problem Engine/Special Targets (grade, edit, print) (Guy) PAGEREF _Toc421867126 \h 81
Tags PAGEREF _Toc421867127 \h 81
environment in a problem that was converted from lectureonline.SOURCE: loncom/homework/default_homework.lcpmTARGET: home/httpd/html/res/adm/includes/default_homework.lcpmProvides many functions for the
What is the area of a box $length mm in length and
&format($width,"2E") cm in width.
A More Complex Problem
$trq1mag and $trq2mag are the magnitudes of the torques produced repectively by
forces $vF1 and $vF2 with respect the pivot P. The magnitudes of $vF1 is
$F1mag and that of $vF2 is $F2mag. $Q1 and $Q2 are the locations
on a rigid body where $vF1 and $vF2 act.
For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag
For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag
For $F1mag larger than $F2mag , $trq1mag can be less than $trq2mag
For $F1mag smaller than $F2mag , $trq1mag can be larger than $trq2mag
The moment-arm of $vF is the shortest distance from P to the line along $vF .
The moment-arm of $vF is the shortest distance from P to $vF vector.
The moment-arm of $vF is not the distance from P to Q1.
The moment-arm of $vF is the distance from P to Q1.
$trq1mag equals to the product of the moment-arm and $F1mag .
$trq1mag equals to $F1mag times the distance from Q1 to P.
$trq1mag is not equal to the product of $F1mag and the distance from Q1 to P.
$trq1mag is not equal to the product of the moment-arm and $F1mag .
$tau1 vector depends on the location of P.
$tau1 vector does not depend on the location of P.
$tau1 vector has no meaning unless a pivot is selected.
$tau1 vector can be determined without selecting P.
Two equal forces, acting on a body along the same line but at different positions, produce equal torques with respect to a given pivot."
Two equal forces, along the same line, produce equal torques with respect to a given pivot only if they act at the same point on a body."
Two equal forces acting on a body along the same line but at different positions, produce equal torques for only one pivot."
This foil will never display since it is unused.
Think the definition of the torque. The force and the moment-arm respect to the pivot.
Fig. 3.1.1 Internal Structure of Homework Handler
Session Two: Statistics/Chart (Behrouz)
In LON-CAPA, we are involved with two kinds of large data sets:
Educational resources such as web pages, demonstrations, simulations, and individualized problems designed for use on homework assignments, quizzes, and examinations;
Information about users who create, modify, assess, or use these resources.
Usually, instructors/ course coordinators wish to assess the students educational situation or evaluate the problems have bee presented in the course, after the students used the educational materials. There are two main modules in LON_CAPA that provide the statistical information for instructors/ course-coordinators: lonchart.pm and lonstatistics.pm. When an instructors access is authorized, he/she can find useful reports about the course, regarding maps, problems included in each map, and the students who tried to solve the problems. When an instructor selects a course, he/she has two buttons in remote control to obtain the statistical information: chart or stat button.
lonchart.pm
chart button in remote control calls lonchart.pm, which provides a quick review of students tries on different problems of a course for an instructor. The instructor may monitor the number of tries of every student in each map and its problems. The number of solved problems in a map is shown in the end of each map with a different color (green). The overall solved problems and total number of problems in the map can be seen at the end of line according to every individual student in a different color (blue). A sample of chart is shown in Fig. 3.2.1
xxxxxxx1:msu ! 001 ! 1*11*121 8 1231.31423212 12 2111211284.131 13 231113112221 12 162 / 188xxxxxxx2:msu ! 003 ! 12113162 8 1+11 1 21x11110 11211322246132 14 ############ 0 149 / 188
1..9: correct by student in 1..9 tries
*: correct by student in more than 9 tries
+: correct by override
-: incorrect by override
.: incorrect attempted
#: ungraded attempted
: not attempted
x: excused
Fig. 3.2.1 Chart of map, problems, and students tries, and a quick statistics of solved problems
1. When an instructor loads the chart in his/her machine once, its data is cached in his/her local machine. If he/she runs the chart again, the course chart is loaded very quickly from the cache.
2. An instructor can sort the chart according to user name, last name, as well as, the section which student belongs to.
Top of Form
Sort by:
3. The instructor is able to select the expired students (who dropped the course earlier) or active students or any (all the) students.
Student Status:
Bottom of Form
lonstatistics.pm
In stat button of remote control, a menu with three options is provided for instructor:
Problem stats
Problem Analysis
Student Assessment
Problem Stats
Problem Stats button provides a table which includes statistical information about every problem, as you see in Fig. 3.2.2. The function ExtractStudentData in lonstatitics Perl Module fetches all the data from a particular student .db file into a big hash in local machine. It uses dump function, which communicates via lonc/lond to get the student data from student repository (data server) and then all versions of student submissions computed according to every problem. The results are stored in an array in the memory. Before computing the students tries in a particular problem, the different parts of problem are distinguished by considering the meta-data, which is provided for every problem.
HYPERLINK "http://deepthought.lite.msu.edu/res/msu/mmp/kap1/calckap1.sequence" \t "_blank" Homework Set 1
P#1 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob11.problem" \t "_blank" Calculator Skills25626731.0425600.00.040.25.70.030.002 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob10.problem" \t "_blank" Numbers256414171.6225500.40.381.65.70.110.023 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob22.problem" \t "_blank" Speed256698132.7325500.40.632.21.90.060.024 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob13.problem" \t "_blank" Perimeter25638871.5225500.40.340.92.4-0.000.025 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/devolibrary/type-math/fraction-rlt-235.problem" \t "_blank" Reduce a Fraction25631541.2325600.00.190.52.30.010.006 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/devolibrary/type-math/fract-add-sub-div-p11.problem" \t "_blank" Calculating with Fractions25639371.5425500.40.350.92.00.150.027 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob04.problem" \t "_blank" Area of a Balloon254601122.3724702.80.591.81.8-0.05-0.028 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob07.problem" \t "_blank" Volume of a Balloon252565112.2424303.60.571.92.0-0.06-0.039 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob12.problem" \t "_blank" Numerical Value of Fraction25626841.0525600.00.040.23.40.010.0010 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob17.problem" \t "_blank" Units2561116204.3624603.90.784.21.90.180.0311 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob07.problem" \t "_blank" Vector versus Scalar254749112.9525101.20.662.21.1-0.05-0.0512 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob10.problem" \t "_blank" Adding Vectors2531026204.0625001.20.763.61.80.140.0013 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/02_Math_2_Trig/msu-prob13.problem" \t "_blank" Proximity249663192.6623913.60.642.32.80.11-0.10
Fig. 3.2.2: Statistics table includes general statistics of every problem of the course
Every part of multi-part problems is distinguished as a separate problem. The multi-instance problem is also considered separately, because a particular problem or one part of it might be used in different maps. Finally, the array, which includes all computed information from all students, sorted according to the problem order, underlying in homework sets order. Therefore, in this step we can compute the following statistical information:
#Stdnts: Total number of students who take a look at the problem.(Let #Stdnts is equal to n)
Tries: Total number of tries to solve the problem ( EMBED Equation.3 where EMBED Equation.3 denote a student try).
Mod: Mode, Maximum Number of Tries for solving the problem.
Mean: Average Number of the Tries.
EMBED Equation.3 = EMBED Equation.3
#YES: Number of students solved the problem correctly.
#yes: Number of students solved the problem by override.
Sometimes, a student gets a correct answer after talking with the instructor. This type of correct answer is called corrected by override.
%Wrng: Percentage of students tried to solve the problem but still incorrect.
EMBED Equation.3
S.D.: Standard Deviation of the students tries.
EMBED Equation.3
Skew.: Skewness of the students tries.
EMBED Equation.3
DoDiff: Degree of Difficulty of the problem.
EMBED Equation.3
As you see Degree of Difficulty is always between 0 and 1. This is a good factor for an instructor to determine whether a problem is difficult, and what is the degree of this difficulty. Thus, DoDiff of each problem is saved in its meta data.
Dis.F.: Discrimination Factor is an standard for evaluating how much a problem discriminates between the upper and the lower students. First, all of the students are sorted according to a criterion. Then, %27 of upper students and %27 lower students are selected from the sorted students applying the mentioned criterion. Finally we obtain the Discrimination Factor from the following difference:
Applied a criterion in %27 upper students - Applied the same Criterion in %27 lower students.
Discrimination Factor is a number in interval [-1,1]. If this number is close to 1, it shows that only upper students have solved this problem. If it is close to 0 it shows that the upper students and the lowers are approximately the same in solving the problem. If this number is negative, it shows that the lower students have more successes in solving the problem, and thus this problem is very poor in discriminating the upper and lower students.
In lonstatistics.pm we compute the Discrimination Factor from two criteria:
1st Criterion for Sorting the Students: EMBED Equation.3
2nd Criterion for Sorting the Students: EMBED Equation.3
Change the stats table sorting
As you see in Fig. 3.2. 2, all headers in the stats table are buttons that change the order of the table. Users can change increasingly or decreasingly every column of the table. First the user select the ascending or descending option, then he/she can change the order of the table with clicking the header of his/her interested header. If the user changes the order the table, all information is shown in one table, each row corresponds to a particular problem. If the user selects the first column, homework set order, the information is shown in different tables, each table corresponds to a particular homework set.
Graphical chart
Two important features in this page might be seen through the graphical charts. That is, a user could see the content of %wrong column and degree of difficulty of problems in the graphical chart as is shown in Fig. 3.2. 3 and 4 for homework set 1 in course PHY183 SS02. These graphical charts are produced dynamically by calling a CGI scripts, (graph.gif) which is located in /home/httpd/cgi-bin/
Fig. 3.2. 3: Degree of difficulty graph Fig. 3.2. 4: %Wrong graph
Problem Analysis
Conceptual option response problems, in which the students are given several concepts that are randomly assigned to each student, are more difficult than numerical simple problems. Instructors usually want to see the students tries according to every particular concept separately. Problem Analysis button provides all response option problems in one table as follows in the Fig. 3.2.5.
Total number of students: 263
Select number of intervals
Option Response Problems in course PHY183 SS02:
# Problem Title Resource Address 1 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob10.problem" \t "_blank" Numbers /res/msu/physicslib/msuphysicslib/01_Math_1/msu-prob10.problem 2 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob22.problem" \t "_blank" Speed /res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob22.problem 3 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob17.problem" \t "_blank" Units /res/msu/physicslib/msuphysicslib/03_Units_Scaling/msu-prob17.problem 4 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob07.problem" \t "_blank" Vector versus Scalar /res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob07.problem 5 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob10.problem" \t "_blank" Adding Vectors /res/msu/physicslib/msuphysicslib/06_Vectors_Scalars/msu-prob10.problem 6 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/05_1D_Motion/msu-prob16.problem" \t "_blank" Traveling Car /res/msu/physicslib/msuphysicslib/05_1D_Motion/msu-prob16.problem 7 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/kashy/Testing/randomlabel/atwood3T2M.problem" \t "_blank" Atwood Machine /res/msu/kashy/Testing/randomlabel/atwood3T2M.problem 8 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/10_Motion_W_Friction/msu-prob32.problem" \t "_blank" Sliding mass concepts /res/msu/physicslib/msuphysicslib/10_Motion_W_Friction/msu-prob32.problem 9 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/12_Work_Power_Energy/msu-prob27.problem" \t "_blank" Work, Power, Energy Concepts /res/msu/physicslib/msuphysicslib/12_Work_Power_Energy/msu-prob27.problem 10 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/13_EnergyConservation/msu-prob32.problem" \t "_blank" Bead on a Wire /res/msu/physicslib/msuphysicslib/13_EnergyConservation/msu-prob32.problem 11 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/20_Rot2_E_Trq_Accel/msu-prob23.problem" \t "_blank" Atwood Machine /res/msu/physicslib/msuphysicslib/20_Rot2_E_Trq_Accel/msu-prob23.problem 12 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/21_Rot3_AngMom_Roll/msu-prob38.problem" \t "_blank" Flinstone Bowling /res/msu/physicslib/msuphysicslib/21_Rot3_AngMom_Roll/msu-prob38.problem 13 HYPERLINK "http://deepthought.lite.msu.edu/res/msu/physicslib/msuphysicslib/32_Fluids1_Pascal_Arch/msu-prob12.problem" \t "_blank" Boat on Pond /res/msu/physicslib/msuphysicslib/32_Fluids1_Pascal_Arch/msu-prob12.problem
Fig. 3.2.5: Option response problems in course PHY183 SS02
Fig. 3.2.5 includes a table, which shows the title of every option response problem in the first column. This title has a link to the original html page of the problem. In the second column the source address of the problem is shown. Third column of this table includes a button to analyze the students data on this particular option response problem. When this button is clicked, all data about this problem is restored, for every student. Different versions of students submissions are evaluated. The results are presented in a graphical chart as well as a numerical table. For example, if we select the analysis of /res/msu/kashy/Testing/randomlabel/atwood3T2M.problem
INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine&Concepts&Answers&1780&6&1342,585,1263,1087,757,1354&433,1190,512,688,1018,421" \* MERGEFORMATINET
Fig. 3.2.6: Atwood Machine option response problem in HW3
In addition, the data of students tries are shown in a table as you see in Fig. 3.2.8. In the last row of the table you can see the time interval of this data and the overall correct and wrong answers separately. If an instructor wants to see the students tries in different time intervals, he/she could set the number of intervals from 1 to 7 time intervals, and then recompute the analysis.
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 1342 433 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 585 1190 3The top tension is equals the two bottom tensions. (massless pulley) 1263 512 4Tension holding the two masses are equal if mass of pulley=0 1087 688 5Sub-System accelerates upwards or downwards accordingly 757 1018 6Center of mass accelerates downward 1354 421 From:[Thu Jan 24 00:46:22 2002] To: [Mon Feb 4 23:59:59 2002]63884245
Fig. 3.2.8: Table of student tries for Atwood Machine Problem according to every concept in one time interval.
INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine_interval_1&Concepts&Answers&230&6&124,44,142,125,64,151&98,178,80,97,158,71" \* MERGEFORMATINET INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine_interval_2&Concepts&Answers&1560&6&1218,541,1121,962,693,1203&335,1012,432,591,860,350" \* MERGEFORMATINET
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 124 98 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 44 178 3The top tension is equals the two bottom tensions. (massless pulley) 142 80 4Tension holding the two masses are equal if mass of pulley=0 125 97 5Sub-System accelerates upwards or downwards accordingly 64 158 6Center of mass accelerates downward 151 71 From:[Thu Jan 24 00:46:22 2002] To: [Wed Jan 30 00:23:10 2002]650682
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 1218 335 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 541 1012 3The top tension is equals the two bottom tensions. (massless pulley) 1121 432 4Tension holding the two masses are equal if mass of pulley=0 962 591 5Sub-System accelerates upwards or downwards accordingly 693 860 6Center of mass accelerates downward 1203 350 From:[Wed Jan 30 00:23:11 2002] To: [Mon Feb 4 23:59:59 2002]57383563
Fig. 3.2.9: Table of student tries for Atwood Machine Problem according to every concept in 2 times interval.
In Fig. 3.2.9, number of students tries tables and the graphical chart are shown in 2 different time intervals. An instructor would be able to check whether the students have more wrong answers during the first days of opening the homework set, and how many students have tried during the first or the second interval. Since the problems are individualized he/she might be able to see how many students have tried to solve the problem after communicating with each other and understanding the concept. In Fig. 3.2. 10 the charts and tables of students tries are shown in 3 time intervals. So if the homework should be done in one week, an instructor would be able to observe the distribution of students tries every day separately after choosing the 7 time intervals.
INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine_interval_1&Concepts&Answers&70&6&31,8,44,32,20,42&30,53,17,29,41,19" \* MERGEFORMATINET INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine_interval_2&Concepts&Answers&950&6&692,321,690,590,399,703&257,628,259,359,550,246" \* MERGEFORMATINET INCLUDEPICTURE "http://deepthought.lite.msu.edu/cgi-bin/graph.gif?Atwood_Machine_interval_3&Concepts&Answers&770&6&619,256,529,465,338,609&147,510,237,301,428,157" \* MERGEFORMATINET
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 31 30 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 8 53 3The top tension is equals the two bottom tensions. (massless pulley) 44 17 4Tension holding the two masses are equal if mass of pulley=0 32 29 5Sub-System accelerates upwards or downwards accordingly 20 41 6Center of mass accelerates downward 42 19 From:[Thu Jan 24 00:46:22 2002] To: [Mon Jan 28 00:30:53 2002]177189
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 692 257 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 321 628 3The top tension is equals the two bottom tensions. (massless pulley) 690 259 4Tension holding the two masses are equal if mass of pulley=0 590 359 5Sub-System accelerates upwards or downwards accordingly 399 550 6Center of mass accelerates downward 703 246 From:[Mon Jan 28 00:30:54 2002] To: [Fri Feb 1 00:15:25 2002]33952281
# Concept Correct Wrong 1Two masses have same acceleration if the two the string does not stretch. 619 147 2Weight of the two masses is greater than the tension of the string attached to the ceiling. 256 510 3The top tension is equals the two bottom tensions. (massless pulley) 529 237 4Tension holding the two masses are equal if mass of pulley=0 465 301 5Sub-System accelerates upwards or downwards accordingly 338 428 6Center of mass accelerates downward 609 157 From:[Fri Feb 1 00:15:26 2002] To: [Mon Feb 4 23:59:59 2002]28161775
Fig. 3.2. 10: Table of student tries for Atwood Machine Problem according to every concept in 3 times interval.
Student Assessment
This option provides some reports about the current educational situation of every student as you see in Fig. 3.2.11. A Y show that the student has solved the problem and N shows his/her failure. A - denotes a unattempted problem. The numbers in the right column show the total number of tries of the student in solving the corresponding problems.
Top of Form
Total number of students : 263Select Map Select Section Select Student
# Set Title Results Tries 1 msu/mmp/phy183.sequence 2 msu/mmp/kap1/calckap1.sequence YYYYYYYYYYYYY 1,1,1,2,1,1,1,1,1,7,9,3,23 msu/mmp/kap2/calckap2.sequence YYNYYYYNNYYYYYYYY 10,1,0,1,1,2,1,4,5,1,1,1,3,2,1,1,14 msu/mmp/kap3/calckap3.sequence YYYYYYYYNYYYYYYYYYY 4,3,5,1,1,8,2,3,20,1,1,1,1,1,2,3,2,2,35 msu/mmp/kap4/calckap4.sequence NYYYYYYYYYYYYYYY 20,1,1,1,3,3,2,3,4,2,3,2,1,1,2,56 msu/mmp/kap5/calckap5.sequence YYYYYYYYYYY-YY 5,2,1,9,12,1,3,12,1,2,1,,1,37 msu/mmp/kap6/calckap6.sequence YYYYYYYYYYYYYY 3,2,4,2,1,1,2,1,1,9,2,3,2,28 msu/mmp/kap7/calckap7.sequence YYYYYYYYYYYYYYYYYY 4,1,3,1,10,4,1,1,2,1,1,2,1,2,1,3,1,39 msu/mmp/kap8/calckap8.sequence YYYYYYYYYYYYYYY 4,3,1,2,3,3,4,3,3,1,1,4,1,1,710 msu/mmp/kap9/calckap9.sequence YYYYN-NYYNY 1,1,1,2,1,,2,2,1,6,411 msu/mmp/kap10/calckap10.sequence YYYYYYYYYYYY 2,1,1,1,1,1,1,1,1,1,1,112 msu/mmp/kap11/calckap11.sequence ----------------- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Fig. 3.2. 5: A sample of a student homework results and tries
We plan to present several other reports in this page as well. Some student classification reports also would be depicted here.
In problem stats and student assessment pages, an instructor can limit the range of his/her information to a particular section or a particular homework set. So, an instructor would be able to load the statistics table or student tries in student assessment table to a particular map or section. After changing the map or section, he/she would be able to see the results via the recalculating the computation on that page.
Future work, using activity.log to classify the students
The problem is whether we can find the good features for classifying students? If so, we would be able to identify a predictor for any individual student after doing a couple of homework sets. With this information, we would be able to help a student use the resources better. As the first step of data mining stuff we want to make an initial effort to classify the students.
Preprocessing and finding the useful student data and segmenting may be a difficult task. Internally, one part of this data is stored in a student directory:
/home/httpd/lonUsers/domain/1st.char/2nd.char/3rd.char/username/
For example: /home/httpd/lonUsers/msu/m/i/n/minaeibi/
Since spring semester 2002, LON-CAPA has logged every activity of every student who has used online educational resources and their recorded paths through the web. So another part of data is stored in activity.log which is located in course directory.
The student data restored from .db files in student directory and is fetched into a hash table. The special hash keys keys, version and timestamp were evaluated from the hash. The version will be equal to the total number of versions of the data that have been stored. The timestamp attribute is the UNIX time the data was stored. keys is available in every historical section to list which keys were added or changed at a specific historical revision of a hash. We extract the features from a structured homework data, which is stored as particular URLs. For example the result of solving homeworks problem by students could be extracted from resource.partid.solved, the total number of the students for solving the problem could be extracted from resource.partid.tries, and so forth.
All data stored in activity.log includes user name, time and resource URL. We can divide these data into six types of URLs, listed below, according to their importance for data mining:
1. problems: are the most useful data. i.e. msu/mmp/kap14/kap14.sequence___33___msu/mmp/kap14/problems/cd418a.problem 2. html pages to those are some links in the problems. i.e. msu/mmp/kap14/kap14.sequence___5___msu/mmp/kap14/cd396.htm 3. the images, which are loaded in above html pages. i.e. /res/msu/mmp/kap14/picts/backsoun.gif .
4. loncapa routines: i.e. /adm/navmaps, or /adm/roles, or /adm/logout.5. Posted data by students: i.e. resource.0.11.submission=27.11 6. remote control gif files: i.e.: /res/adm/pages/v.gif
So, activity.log usually grows fast, when students have more access to the educational resources. We have brought a sample of different types of data which are logged in activity.log after a preprocessing phase as follows:
144) 1010955846: studentX --> /adm/navmaps 145) 1010955205: studentX --> /res/msu/mmp/kap14/picts/beta_eqn.gif 146) 1010955685: studentX --> /adm/navmaps 147) 1010955988: studentX --> /adm/navmaps 148) 1010955998: studentX --> msu/mmp/kap14/kap14.sequence___5___msu/mmp/kap14/cd396.htm 149) 1010955999: studentX --> /res/msu/mmp/kap14/picts/velocity_eqn3.gif 150) 1010956000: studentX --> /res/msu/mmp/kap14/picts/time_eqn.gif 151) 1010954609: studentX --> /res/adm/pages/grds.gif 152) 1010954611: studentX --> /res/msu/mmp/wordproc.gif 153) 1010954626: studentX --> /res/adm/pages/i.gif 154) 1010955717: studentX --> msu/mmp/kap14/kap14.sequence___1___msu/mmp/kap14/cd392.htm 155) 1010955717: studentX --> /res/msu/mmp/kap14/picts/backsoun.gif 156) 1010955920: studentX --> msu/mmp/kap14/kap14.sequence___3___msu/mmp/kap14/cd394.htm 157) 1010955921: studentX --> /res/msu/mmp/gifs/demo.gif 158) 1010956113: studentX --> /res/adm/pages/v.gif 159) 1010954629: studentX --> /res/adm/pages/eval.gif 160) 1010954631: studentX --> /res/adm/pages/back.gif 161) 1010954632: studentX --> /res/adm/pages/b.gif 162) 1010954633: studentX --> /res/adm/pages/r.gif 163) 1010955754: studentX --> msu/mmp/kap14/kap14.sequence___2___msu/mmp/kap14/cd393.htm 164) 1010955756: studentX --> /res/msu/mmp/kap14/picts/asound.jpg 165) 1010955762: studentX --> /res/msu/mmp/kap14/picts/sensor.jpg 166) 1010955999: studentX --> /res/msu/mmp/gifs2/example.gif 173) 1010955687: studentX --> /res/adm/pages/u.gif 174) 1010955688: studentX --> /res/adm/pages/s.gif 175) 1010955688: studentX --> /res/adm/pages/e.gif 176) 1010956528: studentX --> msu/mmp/kap14/kap14.sequence___33___msu/mmp/kap14/problems/cd418a.problem 177) Sent data 178) 1010956536: studentX --> msu/mmp/kap14/kap14.sequence___33___msu/mmp/kap14/problems/cd418a.problem 179) Sent data HWVAL11=27.11 180) 1010956536: studentX --> msu/mmp/kap14/kap14.sequence___33___msu/mmp/kap14/problems/cd418a.problem 181) Sent data resource.0.11.submission=27.11 182) 1010956702: studentX --> msu/mmp/kap14/kap14.sequence___33___msu/mmp/kap14/problems/cd418a.problem 183) Sent data 184) 1010955921: studentX --> /res/msu/mmp/kap14/picts/areal.gif 185) 1010955731: studentX --> /res/adm/pages/n.gif
Feature Extraction
From these two types of student data which are stored by the LON-CAPA system, the features may be considered for classifying the students, are as follows:
Total number of correct answers.
Total number of tries for doing homework.
Time at which the student got the problem correct. Usually better students get the homework completed earlier.
Reading the material before attempting homework vs. attempting first and then read up on it.
Submitting a lot of attempts in a short amount of time without looking up material in between, vs. those giving it one try, reading up, submitting another one, etc.
Getting the problem right on the first try, vs. those with high number of tries.
Giving up on a problem versus students continuing trying up to the deadline.
Participating in the communication mechanisms, vs. those working alone.
It might be interesting to group students with time of the first log on (beginning of assignment, middle of the week, last minute) and correlate this with the number of tries or number of solved problems. A student who gets all correct answers will not necessarily be in the successful group if they took an average of 5 tries per problem, but it should be verified from this research.
We hope to find similar patterns of use in the data gathered from LON-CAPA, and eventually be able to make predictions as to the most-beneficial course of studies for each learner based on a limited number of variables for each individual student. Based on the current state of the learner in a learning sequence, the system could then make suggestions to the learner as to how to proceed.
Session Three: lonsql (Gerd)
This section describes issues associated with LON-CAPA and a SQL database.
The SQL database in LON-CAPA is used for catalog searches against resource metadata only. The authoritative version of the resource metadata is as discussed an XML-file on the normal file system (same file name as resource plus .meta). The SQL-database is a cache of these files, and can be reconstructed from the XML files at any time.
The current database is implemented assuming a non-adjustable architecture involving these data fields (specific to each version of a resource).
title
author
subject
notes
abstract
mime
language
creationdate
lastrevisiondate
owner
copyright
Purpose within LON-CAPA
LON-CAPA is meant to distribute A LOT of educational content to A LOT of people. It is ineffective to directly rely on contents within the ext2 filesystem to be speedily scanned for on-the-fly searches of content descriptions. (Simply put, it takes a cumbersome amount of time to open, read, analyze, and close thousands of files.)
The solution is to hash-index various data fields that are descriptive of the educational resources on a LON-CAPA server machine. Descriptive data fields are referred to as "metadata". The question then arises as to how this metadata is handled in terms of the rest of the LON-CAPA network without burdening client and daemon processes. I now answer this question in the format of Problem and Solution below.
PROBLEM SITUATION: If Server A wants data from Server B, Server A uses a lonc process to send a database command to a Server B lond process.
lonc= loncapa client process A-lonc= a lonc process on Server A
lond= loncapa daemon process
database command
A-lonc --------TCP/IP----------------> B-lond
The problem emerges that A-lonc and B-lond are kept waiting for the MySQL server to "do its stuff", or in other words, perform the conceivably sophisticated, data-intensive, time-sucking database transaction. By tying up a lonc and lond process, this significantly cripples the capabilities of LON-CAPA servers.
While commercial databases have a variety of features that ATTEMPT to deal with this, freeware databases are still experimenting and exploring with different schemes with varying degrees of performance stability.
THE SOLUTION: A separate daemon process was created that B-lond works with to handle database requests. This daemon process is called "lonsql".
So,
database command
A-lonc ---------TCP/IP-----------------> B-lond =====> B-lonsql
<---------------------------------/ |
"ok, I'll get back to you..." |
|
/
A-lond <------------------------------- B-lonc <======
"Guess what? I have the result!"
Of course, depending on success or failure, the messages may vary, but the principle remains the same where a separate pool of children processes (lonsql's) handle the MySQL database manipulations.
Session Four: CVS/Bugzilla Intro (Guy)
Session Five: Open Worktime
Different Types of LON-CAPA Servers
Scott Harrison, freeware volunteer, sharrison@sourceforge.net
Introduction
There are two different kinds of LON-CAPA servers, Library Servers and Access Servers. On any LON-CAPA machine, you can look at the server type by viewing the file /etc/httpd/conf/loncapa.conf and looking at the variable lonRole.
Library Servers
Library Servers are repositories of authoritative educational resources. These servers also provide the construction space by which instructors assemble their classroom online material. First-time installations of LON-CAPA at an institution should be for Library Servers (and not Access Servers).
Only Library Servers make use of a MySQL database.
On the filesystem, the following directories are used primarily by Library Servers (and not Access Servers):
/home/USERNAME/ - authors are standard Linux users that exist on Library Servers
/home/httpd/lonUsers/ - user profile information is stored inside Library Servers
/home/httpd/html/res/
- Library Servers use this space to hold authoritative or cached versions of educational resources; Access Servers only use this space to hold cached versions of educational resources
Access Servers
Access Servers load-balance high-traffic delivery of educational resources over the world-wide web. Access Servers do not require a MySQL database and do not contain Linux user accounts. Several of the active directories on Library Servers are not needed on an Access Servers.
Hardware specification for LON-CAPA servers
Scott Harrison, freeware volunteer, sharrison@sourceforge.net
General information on LON-CAPA Server Hardware Requirements
For full-time, classroom usage, an adequate LON-CAPA server should be/have:
a multiprocessor machine,
a CPU speed of 1 gigahertz,
a gigabyte of memory,
and at least 40 to 80 gigabytes of hard disk space.
A lesser machine can be used for toying around with LON-CAPA (LON-CAPA will run for a single user on most any machine).
LON-CAPA servers experience significant peaks of activity before a homework submission deadline. To support these critical peaks of activity, it is strongly advised that LON-CAPA machines fit the above recommendation.
If thousands of students start accessing the box as a web server... well you may want to consider more options. The design of the LON-CAPA system is to naturally and transparently load-balance on multiple computer clusters. So, a simple solution for running an entire college campus is to just have an adequate plurality of LON-CAPA servers rather than a single, particularly monstrous server.
We like to think of high web server usage as "a good problem" though....
Additional Information on LON-CAPA Server Hardware Requirements
LON-CAPA works nicely (for development purposes) on a Pentium II, 20 gigabytes of hard-disk space, 256M RAM, and 400MHz. The consensus is though, that this may only be adequate for a class of a dozen students.
If you are making a serious investment, you should join the LON-CAPA mailing list by visiting http://mail.lon-capa.org/mailman/listinfo/lon-capa-users. By posting to this mailing list, you can learn about the solutions have worked for others.
LON-CAPA works on any Intel-based RedHat-compatible hardware. Unlike other e-learning software systems, it works comparatively well on dusty old crippled machines without much RAM or processing.
LON-CAPA on the Linux Filesystem
Scott Harrison, freeware volunteer, sharrison@sourceforge.net June 4, 2002
Contents 1. Introduction 2. The LON-CAPA Source Files 3. Active Filesystem Directories of Importance 4. The Installation Mechanism 5. Automated Testing 6. Software Packages 7. Security on the Filesystem
1. Introduction
LON-CAPA currently consists of 695 files placed in 56 different directories on a linux filesystem. There are also 9 different symbolic links. There are 11 different file ownership/permission categories under which files are securely installed.
For the last 2 years, an average of 1 new file per day was included into the LON-CAPA distribution. A conservative estimate is that 10 files were modified each day in the LON-CAPA source tree. In order to maintain a robust build-installation framework consistent with the many changes, all information pertaining to the LON-CAPA installation has been kept in a well-formatted XML-valid document. The XML document "renders" LON-CAPA from a CVS source tree to the Linux filesystem (the XML document can also be used to build RPMs, display documentation, and conduct status-checking reports). There have been few, if any, bugs related to the XML specification of the LON-CAPA software. Thus, throughout the software development and version releases of LON-CAPA, there has most always been a complete, bug-free specification of what files comprise the LON-CAPA software. For more information about this XML-based approach, please visit http://lpml.sourceforge.net/.
LON-CAPA is well-supported on RedHat Linux operating systems version 6.2 and version 7.3. LON-CAPA is also known to run well on Mandrake and Debian, however there is no specified installation procedure for these operating systems (a Debian installation procedure is currently under development). There currently do not exist LON-CAPA installations on BSD-UNIX or MacOS/X systems (I remain curious though as to whether a programmer or institution will pioneer this strategy). Given the current level of new LON-CAPA feature requests and frequency of new software versions, we suggest that most users plan on using RedHat so as to reduce high-frequency system administration overhead.
LON-CAPA is interdependent with a variety of Linux operating system services and software packages. Thus, a challenge exists to maintain the correct set of software packages (e.g. with RedHat, software packages are called RPMs) with the correct configurations. Past efforts have sought to completely automate the handling of software packages and their configuration. The new existing strategy is to test for proper operation of system services (architecturally termed as "horizontal layers") and make recommendations (to a knowledgeable linux administrator) as to how software packages or configurations should be adjusted.
2. The LON-CAPA Source Files
Of the 695 files which make up the LON-CAPA distribution, 492 of these files can be thought of as interface widgets or templates. The widgets and templates are organized into ten different file "globs".
Template files for generating new resources (28 files) source-to-target: loncapa/loncom/homework/templates/* -> /home/httpd/html/res/adm/includes/templates/
Icons for providing a HTML-tabled view of a course map (109 files) source-to-target: loncapa/rat/images/*.gif -> /home/httpd/html/adm/rat/
Icons to indicate an unexpected result (6 files) source-to-target: loncapa/loncom/html/adm/lonKaputt/*.* -> /home/httpd/html/adm/lonKaputt/
Logos and general widget icons (108 files) source-to-target: loncapa/loncom/html/adm/lonIcons/*.* -> /home/httpd/html/adm/lonIcons/
Miscellaneous resources (9 files) source-to-target: loncapa/loncom/html/adm/lonMisc/*.* -> /home/httpd/html/adm/lonMisc/
XML files which assign unicode numbers to mathematical symbols using type syntax (26 files) source-to-target: loncapa/loncom/MathML/*.ent -> /home/httpd/html/adm/MathML/
Icons used for the entire LON-CAPA user interface (80 files) source-to-target: loncapa/loncom/html/res/adm/pages/*.gif -> /home/httpd/html/res/adm/pages/
Icons used for directory indexing (89 files) source-to-target: loncapa/loncom/html/res/adm/pages/indexericons/*.gif -> /home/httpd/html/res/adm/pages/indexericons/
Icons used for the bookmark portion of the LON-CAPA user interface (23 files) source-to-target: loncapa/loncom/html/res/adm/pages/bookmarkmenu/*.gif -> /home/httpd/html/res/adm/pages/bookmarkmenu/
Files associated with the scheme of displaying bookmarks (3 files) source-to-target: loncapa/loncom/html/res/adm/pages/bookmarkmenu/*.html -> /home/httpd/html/res/adm/pages/bookmarkmenu/
A second grouping of files are the 124 scripts, documentation files, shared object libraries and other extraneous files for LON-CAPA.
A third (and highly important) grouping of files are the 77 mod-perl Apache web handler modules. These modules coordinate how the system interacts with the web interface delivered by the LON-CAPA system. For example, the spreadsheet, search engine, graphing, and homework formatting features of LON-CAPA are all transacted by different Apache web handler modules. More information on the LON-CAPA Apache web handlers can be read about in the section titled "LON-CAPA and the 77 Web Handlers".
In addition to the total 695 files of LON-CAPA, 9 symbolic links are also created. 7 of these links exist inside the /etc/rc.d/ directories and are used to facilitate the launching of LON-CAPA network services (i.e. lonc and lond). Another link makes LON-CAPA resources available in their "raw" format (/home/httpd/html/raw is linked to /home/httpd/html/res). Another link makes /etc/mime.types equivalent with /etc/httpd/conf/mime.types to support backwards compatibility with various software packages for various RedHat releases.
3. Active Filesystem Directories of Importance
Of the 56 different directory locations where LON-CAPA files are stored, there are about a dozen directory locations of high significance for both operating and understanding the LON-CAPA software
/home/httpd/lonTabs/ tab-formatted reference files; e.g. hosts.tab (cross-networked servers) and spare.tab (load-balancing servers)
/home/httpd/perl/ perl scripts for managing the LON-CAPA system; e.g. lond (remote TCP command interpreter)
/home/httpd/perl/logs/ location where system performance and error logs are kept; e.g. lonnet.log (messages from the LON-CAPA web layer); lonnet.log.1, lonnet.log.2 (time-cycled past versions of lonnet.log); lond.pid (the parent process of all the lond children processes)
/home/httpd/html/lon-status/ location where online logs are kept that are viewable over the world-wide web; e.g. index.html (a summary file of all the error messages, warning messages, and connection states) and londchld/* (files that contain status reports from each lond process)
/home/httpd/lib/perl/ location of LON-CAPA non-web mod-perl handlers; e.g. localauth.pm (module for handling institution-customized user-password authentication)
/home/httpd/lib/perl/Apache/ location of LON-CAPA web mod-perl handlers; see the section titled "LON-CAPA and the 77 Web Handlers"; e.g. lonnet.pm (server-side socket connections) and lonsearchcat.pm (the LON-CAPA search catalogue)
/home/httpd/sockets/ lonc-related sockets (client portals for sending data to other machines)
/home/httpd/lonUsers/ Home directories of local users. There is a five-tier structure to the directories: [domain]/[firstletter]/[secondletter]/[thirdletter]/[userid]. For example, a user "fredflint" at MSU would have his information located in lonUsers/msu/f/r/e/fredflint. Or, for example, a user "thelma" at Ohio University would have her information located in lonUsers/ohiou/t/h/e/thelma. Within this directory there are a variety of files which govern the scope of what a user can do within the LON-CAPA system. A passwd file determines the type of authentication mechanism to use. There also are files such as roles.hist (and its database compilation, roles.db) which specify the roles and privileges for a user in the LON-CAPA system.
/home/httpd/lonIDs/ cookie jar, the location where the server can validate browser cookies present in client-side browsers (such as Internet Explorer or Netscape Communicator)
/home/httpd/html/res/DOMAIN/ publication space (or cache) for a domain; e.g. Simon Frasier University resources are specified in the /home/httpd/html/res/sfu/ directory (note that the 'sfu' abbreviation is defined in /home/httpd/lonTabs/hosts.tab)
/home/USER/ construction space for a user (standard linux user home directory); e.g. /home/korte/, /home/lucasm/, or /home/jensen/
4. The Installation Mechanism
4.1 Standard procedure
To install LON-CAPA on a running RedHat Linux operating system, the procedure is as described at http://install.lon-capa.org/. The procedure is intentionally limited to an initial one-line command (for simplicity's sake). To summarize:
Download the most current HYPERLINK "http://install.lon-capa.org/versions/current/loncapa.tar.gz" loncapa.tar.gz.
wget http://install.lon-capa.org/versions/current/loncapa.tar.gz tar xzvf loncapa.tar.gz cd loncapaThe UPDATE command will refresh your filesystem with all the latest LON-CAPA software.
./UPDATEUpon running the ./UPDATE command, the user is presented with questions regarding the set up of their LON-CAPA server. For instance, the following is a summary question which verifies the machine-specific configuration variables (that are stored inside /etc/httpd/conf/loncapa.conf):
=============================================================================== This is now the current configuration of your machine. 1) Domain Name: msu 2) Machine Name: rawhidel1 3) System Administrator's E-mail Address: harris41@spock.lite.msu.edu 4) Role: library 5) Cache Expiration Time: 86400 6) Server Load: 2.00 7) Everything is correct up above ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7: The formatting and valid ASCII character usage are interactively monitored by the UPDATE script.
4.2 XML specification
loncapa/doc/loncapafiles/loncapafiles.lpml is an XML file that contains all the information pertaining to the LON-CAPA installation. Even though loncapa/doc/loncapafiles/loncapafiles.lpml is present in the "doc" directory of the LON-CAPA source tree, it is the most critical file of the software build-installation process. loncapa/doc/loncapafiles/loncapafiles.lpml is referenced by many different loncapa/loncom/build/Makefile targets.
An example entry inside loncapa/doc/loncapafiles/loncapafiles.lpml is:
home/httpd/lib/perl/Apache/lonwrapper.pmhandler Wrapper for external and binary files as standalone resources. Edit handler for rat maps; TeX content handler. works/unverified LPML is an XML document-type definition which is described at http://lpml.sourceforge.net/.
4.3 Makefile
loncapa/loncom/build/Makefile is the "engine" of the source code tree (i.e. the aforementioned ./UPDATE script simply calls different Makefile targets consecutively). Ordinarily, only software developers bypass the ./UPDATE script and utilize the Makefile targets directly.
There are currently 40 targets present in the Makefile (each target is invoked with the syntax "make TARGETNAME" from the loncapa/loncom/build/ directory.. Of these targets, there are several targets of common usage. These common targets are described immediately below.
make install: this installs configuration files, non-configuration files, configures the Apache httpd.conf file, runs a sanity check on the operating system; generally speaking, this target does everything associated with installing and upgrading files on a LON-CAPA filesystem.
make rawinstall: this installs configuration files and non-configuration files (without extra bells-and-whistles such as configuring the httpd.conf file or running a sanity check).
make configinstall: this installs configuration files and is a sub-target of the rawinstall and install targets.
make build: this compiles all files that need to be compiled from the LON-CAPA source tree.
make test: this runs software functionality tests.
5. Automated Testing
The goal is to test for proper operation of system services and make recommendations (to a knowledgeable linux administrator) as to how software packages or configurations should be adjusted.
The importance of a diagnostic test tool is especially relevant when installing LON-CAPA on non-RedHat Linux systems, or for testing installation procedures for new RedHat version releases.
In terms of better developer-to-user interactions, the current experience is that automated testing has helped speed the identification of problems associated with the server configuration and software dependencies.
5.1 Standard Procedure for Testing
After running the ./UPDATE command from the loncapa.tar.gz LON-CAPA distribution, the user should then run the ./TEST command to ensure the continuing correct operation of the LON-CAPA software.
./TESTUsing the TEST command may be an iterative process. It is normal to expect that the ./TEST command will recommend for users to perform various steps to ensure optimal performance of their LON-CAPA server.
5.2 Testing the System Services (MySQL, perl libraries, etc)
Two of the most important (yet occasionally tricky) system services to handle are those involving 1) the MySQL database and 2) the dozens of perl software packages needed from http://www.cpan.org/ (as described in loncapa/doc/otherfiles/perl_modules.txt).
The testing of these system dependencies is performed inside the loncapa/loncom/build/system_dependencies/ directory.
MySQL testing checks for:
the presence of a MySQL server
the status of the MySQL server
the necessary perl modules (such as DBI)
and most importantly, the run-time ability to connect to the MySQL "loncapa" database through the DBI interface module.
In the event of failed testing, the user is prompted as to what changes to make to their operating system.
LON-CAPA relies on the presence of multiple CPAN (http://www.cpan.org/) perl modules which are not ordinarily distributed with RedHat operating systems. Examples include Digest-MD5, Math-FFT, GDTextUtil, and Algorithm-Diff.
In the event of missing perl modules, the user is prompted to update their system with either a LON-CAPA-systemperl-*.*-rh72.i386.rpm package or a LON-CAPA-systemperl-*.*-1.i386.rpm package.
5.3 Testing the LON-CAPA Web Interface
The testing of the LON-CAPA web layer is performed inside the loncapa/loncom/build/weblayer_test/ directory.
Simulated web transactions are conducted; this ordinarily would be considered "black-box" testing. Currently, a test login has been implemented. The machine's host id and domain for LON-CAPA is determined (read from /etc/httpd/conf/loncapa.conf). A password is randomly generated and a test user with a name beginning with 'ZXQTEST' is created within the /home/httpd/lonUsers/ directory. A test login is run by using the LWP::UserAgent perl module. Password encryption that ordinarily occurs by javascript is simulated with the perl Crypt::DES module.
In the event of a failed login, the system administrator is prompted with corrective suggestions such as "Are lonc and lond running on the system?".
5.4 Testing the Installation Mechanism
The testing of the installation is performed inside the loncapa/loncom/test/ directory.
Since a great deal of the installation mechanism relies on the ability to compare the files inside the LON-CAPA source tree with the target filesystem, most of the tests relate to the file comparison utilities.
6. Software Packages
./CHECKRPMSIn addition to the ./TEST and ./UPDATE commands, there is a ./CHECKRPMS command. The ./CHECKRPMS command first attempts to contact different RedHat RPM mirrors. When successful contact is made, ./CHECKRPMS compares the RPM version numbers (based on an intelligent method designed by Martin Siegert at Simon Frasier University) and outputs a list of RPMs that the system administrator should update.
Updating RPMs is an important task to do for security. Quite often, even those RPMs that are not directly associated with system networking can present security holes (e.g. imlib, zlib, diffutils, and man all have had security updates in the last year).
./CHECKRPMS relies upon Martin Siegert's check-rpms script which exists in the loncapa/loncom/build/ source directory. For more information on the advanced usage of check-rpms:
cd loncapa/loncom/build; perldoc ./check-rpmsSome advanced usage hints:
To automatically update RPMs for a RedHat 6.2 system:
check-rpms -v -r --update -ftp rufus.w3.org/linux/redhat/updates/6.2/en/os To automatically update RPMs for a RedHat 6.2 system:
check-rpms -v -r --update -ftp rufus.w3.org/linux/redhat/updates/6.2/en/os To download needed RPMs for a RedHat 6.2 system:
check-rpms -v -r -d /var/tmp/rpms -dl -ftp7. Security on the Filesystem
Multiple processes controlled by multiple entities exist on a LON-CAPA server system. On a typical LON-CAPA library server, many different members of an institution will have author accounts by which they can log onto the server. The goal is to prevent these different user accounts from accessing other user directories (or sensitive information files such as password-files) on a LON-CAPA system. Two things are done to accomplish this on the filesystem. 1) A typical user is a member of only his or her own group. 2) A user's home directory can only be read by the user or root or the web-server processes.
The web-server processes are owned by the 'www' user. In order for web-server processes to work with the home directories of each user, the 'www' user is made a member of each user's personal group. For example, on a system with korte, lucasm, and jensen as authors (and thus standard Linux account users with filesystem privileges), www would be a member of the 'korte' group, the 'lucasm' group, and the 'jensen' group as defined in the /etc/group and /etc/group- files.
Several system interactions require the 'www' user to have the ability of the all-powerful 'root' user. (Future plans are for this to be mediated by 'sudo'.) Currently, there are several setuid-root scripts described in loncapa/doc/loncapafiles/loncapafiles.lpml. These setuid scripts allow 'www' processes to add new system users, change passwords, and password authentication against shadow passwords.
In order to ensure proper access and execution rights to various LON-CAPA software files, multiple file ownership/permission categories are supported in loncapa/doc/loncapafiles/loncapafiles.lpml as shown in the table below.
Category NamePermissions (development)interface file0644 www:wwwsetuid script6755 root:roothandler0600 www:wwwstatic conf0444 root:rootconf0644 root:rootscript0700 www:wwwgraphic file0400 www:wwwdoc0644 root:rootsystem file0644 root:rootroot script0700 root:rootsymbolic linkroot:rootstandard0755 root:rootserver standard0755 www:wwwserver readonly0700 www:wwwDuring a brand-new installation, in order to make LON-CAPA work on a system with shadow passwords, the system administrator must manually configure and compile a mod_auth_external software package. Instructions for this, as currently described on http://install.lon-capa.org/ are:
First ensure the existence of a 'www' user. If 'www' does not yet exist on the system, then create:
/usr/sbin/useradd www Make a LON-CAPA system work with shadow passwords
Step #Description1 Is your system using shadow passwords? (Note: LON-CAPA will work with either MD5/non-MD5 configured systems). If your system is not using shadow passwords, then do not perform any of the additional steps. If your system is using shadow passwords, then you will need to perform the additional steps below.
How to detect: command: cat /etc/passwd | grep ':x:'
If there is output such as "root:x:0:0:root:/root:/bin/bash", then your system is using shadow passwords and you will need to continue with the steps below. 2 Retrieve the mod_auth_external source by running the following command
wget http://www.wwnet.net/~janc/software/mod_auth_external-2.1.13.tar.gz 3 Unpack the mod_auth_external source by running the following command
tar xzvf mod_auth_external-2.1.13.tar.gz 4 Go to the pwauth directory by running the following command
cd mod_auth_external-2.1.13/pwauth/ 5 Edit config.h and change SERVER_UIDS definition
Determine the user id of 'www': grep ^www /etc/passwd | cut -d':' -f3 Change the line #define SERVER_UIDS 99 /* user "nobody" */ to be #define SERVER_UIDS 513 /* user "www" */ where in this example 513 corresponds to the user id of 'www'. 6 Compile the pwauth executable by running the following command
make 7 Install pwauth by doing the following
cp pwauth /usr/local/sbin/ chmod 6755 /usr/local/sbin/pwauth
Edit (creating the file) /etc/pam.d/pwauth to have the contents:
auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so
Configuration
Scott Harrison, freeware volunteer, sharrison@sourceforge.net
Configuring the Apache Web Server
The configuring of the Apache Web Server and the input of LON-CAPA configuration values is handled automatically by the ./UPDATE command. In this document, the details of what the ./UPDATE command facilitates are described.
/etc/httpd/conf/httpd.conf is adjusted to include the LON-CAPA web server configuration. This happens by appending the following line to httpd.conf:
Include conf/loncapa_apache.conf The /etc/httpd/conf/loncapa_apache.conf file customizes the Apache Web Server to have the needed configuration to deliver LON-CAPA on the world-wide web. The loncapa_apache.conf file does not contain any information specified by the system administrator. The loncapa_apache.conf file does, however, cause loncapa.conf to be included. /etc/httpd/conf/loncapa.conf contains only information specified by the system administrator. Generally speaking, the information inside /etc/httpd/conf/loncapa.conf is machine-specific (each LON-CAPA server has its own specific values inside loncapa.conf).
/etc/httpd/conf/loncapa_apache.conf performs the following customizations of the Apache Web Server:
The document root of all the web pages is set to be /home/httpd/html/.
The web httpd user is set to be 'www'. The web httpd group is set to be 'www'. This means that all web processes only have the authorities granted by the Linux system to user=www and group=www.
Shared object modules are supported for the perl language (mod-perl).
A print spool alias and a cgi-bin script alias are specified.
Access handlers are specified for published educational resources, author construction spaces, and raw binary data access.
50 different URI syntaxes are assigned to web handlers present inside /home/httpd/lib/perl/Apache/.
Directory options are set for '/' and '/home/httpd/html/'.
General configuration values are specified that can be accessed by the perl web handler modules; e.g. lonTabDir=/home/httpd/lonTabs, londPort=5663, etc.
/etc/httpd/conf/startup.pl is invoked to test and load the perl web handler modules into memory for the httpd web server processes.
/etc/httpd/conf/loncapa.conf specifies machine-specific values that are accessible to the perl web handler modules. Ordinarily, these values are not to be entered manually. These values are interactively solicited from the system administrator by the loncapa/doc/loncapafiles/updatequery.piml file. The following values comprise the loncapa.conf file:
LON Host ID ("Machine Name") is an internal ID within the LON-CAPA network used to specify the uniqueness of a particular LON-CAPA server.
LON System Administrator E-Mail specifies the e-mail address of an institutional member responsible for direct upkeep of this server.
LON Domain ("Domain Name") is a unique internal identifier within the LON-CAPA network specific to the home institution; A LON-CAPA domain is a collection of load-balancing institutional machines forming a cluster of LON-CAPA servers. It has nothing to do with the many other meanings for the word "domain", such as "domain names" like "loncapa.org", or Windows file server domains. If you are installing a LON-CAPA server for testing purposes, it is safe to create your own domain name for testing. You should ask the person running a real domain before adding your computer to their domain.
LON Load Limit ("Server Load") specifies a threshold of activity within The LearningOnline Network that this machine should provide. The recommended value is 2.00. Depending on processor architecture (dual processor), this value may be increased, but there is no readily available measure in this regard.
Cache Expiration Time indicates, in seconds, how long distributed resources should be held in the server's cache when not being accessed by students, instructors, or any other class of user. The recommended value is 86400.
Configuring the LON-CAPA Network
In order for LON-CAPA to connect to other servers that provide educational resources or to balance the load of high-volume web-requests, there needs to be a way to access information that describes the other LON-CAPA servers present on the internet.
/home/httpd/lonTabs/hosts.tab defines all of the other machines that a given LON-CAPA server can interact with. (In a sense, this is a mechanism of security so that connections cannot be attempted from spurious entities.)
The format of hosts.tab is to define each LON-CAPA server on separate lines. Each line is field-separated by colons ':'.
An example entry in hosts.tab is:
vulon1:msuvu:library:loncapa3.vu.msu.edu:35.9.80.250 The first field is the LON Host ID (see the above description of loncapa.conf). The second field is the Domain Name. The third field is the server type (see the section "Different Types of LON-CAPA Servers"). The fourth field is a DNS-registered full IP name. The fifth field is the numeric IP address.
/home/httpd/lonTabs/spare.tab is a list of LON Host IDs corresponding to Access Servers (or Library Servers). spare.tab should not be the same on every LON-CAPA server machine. The purpose of this list is to specify other servers toward which user web requests can be re-directed. Current experience is that the servers on spare.tab are particularly active (and much needed) shortly before homework assignments are due....
An example of spare.tab relates to the Library Server vulon1 which load-balances the requests onto two other Access Servers as shown in the example spare.tab below:
vulona1 vulona2 Configuring MySQL
The following commands describe how to configure the MySQL database on your LON-CAPA server. Note:
you should substitute 'ROOTPASSWORD' with something very hard to guess (it does not have to be the Linux OS root password)
The MySQL www@localhost user must always have a password of 'localhostkey' in order for there to be correct operation of a standard LON-CAPA system.
The following instructions assume you are logged in as 'root'.
Entering the mysql shell
mysql -u root -p mysql OR mysql -u root mysql (depending on whether you have set a root password) Creating the mysql 'www' user (after entering mysql shell)
mysql> CREATE DATABASE loncapa; mysql> INSERT INTO user (Host, User, Password) mysql> VALUES ('localhost','www',password('localhostkey')); mysql> GRANT ALL PRIVILEGES ON *.* TO www@localhost; mysql> FLUSH PRIVILEGES; SECURITY: set a password for the mysql 'root' user
shell> mysql -u root mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('ROOTPASSWORD'); SECURITY: only allow access from localhost
shell> mysql -u root -p mysql mysql> DELETE FROM user WHERE host<>'localhost';
Fast Installation: Setting up a Red Hat 7.3 LON-CAPA Server
Before you begin
Installing Linux is getting easier and easier. However, it is still a non-trivial undertaking and experience with Red Hat Linux will make this process easier. You will be required to log in to the machine and execute some routine Unix commands. Some familiarity with Linux is assumed.
Installation Overview
The installation process takes the following steps:
Obtain Red Hat 7.3
Gather information for installing Red Hat
Install Red Hat 7.3
Determine your LON-CAPA Settings
Install LON-CAPA
Configure LON-CAPA
Pick a hosts.tab file
Create a Domain Coordinator
Start/Restart services
Log in to LON-CAPA
Obtain the Red Hat 7.3 installation CDs
If you like, you may contact the LON-CAPA development staff and we can mail the CDs to you. Another option is to download the cd images and burn them yourself, or install from a mirror site using ftp or http.
Determine Network settings for your site
You will need to have the following information for your site. You must have a static IP address (do not use DHCP).
ip address
netmask
network
broadcast
hostname
gateway
domain name server(s)
Install Red Hat 7.3
When you install RedHat you will need to ensure the following (the list below is in the order the issues appear in the installation of Red Hat 7.3):
Installation Type
You should definitely do a "Server" install. We do not recommend Trying to install LON-CAPA with a different installation type.
Partitioning your Drive
You may want to use the automatic partitioning feature of Red Hat, however you should review the results and be prepared to modify them. LON-CAPA resource files are stored in the /home directory, so the lion's share of the drive should be allocated here. If you have 8 GB of space for Red Hat, /home should receive 4 to 6 gigs. Be sure to include adequate swap space. A minimum is 512 Megs, but you should typically have 1 or 2x as much swap space as you do physical RAM.
Network Configuration
LON-CAPA will not work with a machine set up to use a dynamic IP address. When configuring your network card, be sure to unselect the DHCP option and enter in your network information.
Firewall Configuration
The installation script will remove and disable your firewall.
Package Group Selection
At a minimum, install the following packages:
NFS File Server
Windows File Server
Web Server
Other packages can be installed as you like.
X Windows Configuration
If you chose to install the X-windows packages you will need to configure them. If you are unsure of the support for your video card you may wish to skip the configuration.
Other notes:
Use md5 and shadow passwords if you are given the choice (this is the default).
Determine LON-CAPA settings
LON-CAPA requires a number of identifying parameters be set in order for it to function at all. Below is a list with descriptions.
Host Type (library or access)
The server must be designated a 'library' or an 'access' server. In general you should have a library server for your instructors to create their course content on and run their courses. Students should connect to access servers. If you are doing the first install of LON-CAPA at your site, or if you are playing with it for your own edification, you should make your machine a 'library' server.
LON-CAPA domain
Each site or school which installs LON-CAPA needs its own domain. Here at MSU we use 'msu'. You should choose something short but meaningful. Restriction: One word, no hyphens, underscores, or special characters!
LON-CAPA host id
Each LON-CAPA server requires a unique internal name. We use names such as "msul1" for the first library server. Restriction: One word, no hyphens, underscores, or special characters!
Host administrator email
The amount of email sent to this address is relatively minimal. Messages are sent every time the system starts up, or if the system is in serious trouble. On a laptop, make this root@localhost.
Root password for SQL database
In order to keep people from corrupting the MYSQL database, a root password is needed. You'll need to remember this.
Install LON-CAPA
Log in as root with the password you provided during the Red Hat installation process.
wget http://install.loncapa.org/versions/rh73install/loncapa-rh73install.tar tar xf loncapa-rh73install.tar cd install ./install.pl
Configure LON-CAPA
Execute the following commands
cd /root/loncapa/ ./UPDATE
You will need to enter the LON-CAPA configuration information you requested above. Additionally, you will need to enter the following information (options 5 and 6 in the menu, recommended settings):
Cache Expiration Time
86400
Server Load
2.0
You can deviate from the above settings if you know what you are doing.
Picking a hosts.tab file
The "hosts.tab" file controls which LON-CAPA servers your server attempts to access and which servers it will respond to. If this is your first install of LON-CAPA on your network, we suggest choosing a 'standalone' "hosts.tab". On a laptop, you must choose 'standalone'. Please contact the support staff at www.loncapa.org for information about adding more hosts to your "hosts.tab" file.
Note: for non-standalone configurations, you do need to add yourself to the /home/httpd/lonTabs/hosts.tab to initially test your configuration. Eventually, you will be added to the general cluster tables by LON-CAPA staff, so this is temporary. A hosts.tab entry has the format
lonHostID:domain:hosttype:dns-name:ipaddress
for example
103l5:library:s17.lite.msu.edu:35.8.63.27
Please edit this file with a UNIX editor, not a PC or Mac one, so that the linebreaks are correct.
Creating a Domain Coordinator
You will need at least one user at your site who has the role of 'domain coordinator'. This user creates accounts for other users and grants them additional privileges. The make_domain_coordinator.pl script invoked below requires that you enter the users password. The password will show in plaintext as you type it. Feel free to use the "passwd username" command to change it later. Replace USERNAME and DOMAIN with an appropriate user name and your domain.
cd /root/loncapa/loncom/build perl make_domain_coordinator.pl USERNAME DOMAIN (WILL PROMPT FOR PASSWORD HERE) mkdir ~USERNAME/public_html chown USERNAME:www ~USERNAME/public_html chmod 0775 ~USERNAME/public_html
Start/Restart Services
The services take about 10 minutes to start.
/etc/init.d/loncontrol start /etc/init.d/httpd restart
Make Sure that Services Autostart on Boot
On Redhat 7.3 it is not guaranteed that Apache and MySQL automatically restart on boot, even when installing with "server" configuration. After logging in as root, check under "Programs" - "System" - "Service Configuration" that "Start on Boot" is checked for httpd and mysqld, save and restart..
Log in to your LON-CAPA Machine
Point a web browser at your new machine and log in as the domain coordinator. Congratulations!
Glossary
Server The Network has two classes of servers, library servers and access servers
Home Server of a user Server that stores all personal records and resources of a user
Library Server A library server can act as a Home Server that stores all personal records of user, and is responsible for the initial authentication of that user when a session is opened on any server in the Network. For Authors, it also hosts their construction area and the authoritative copy of every resource that was published by that author. Library servers can be used as backups to host sessions when all access servers in the Network are overloaded.
Access Server machines that host learner sessions.
Domain The Network is divided into domains domains could be defined by departmental or institutional boundaries. Domains provide the possibility to limit the spread of personal user information flow, load balancing, and content material. Physically, every domain needs at least one dedicated library server.
Users users are identified by a usernames and the domain. Usernames need to be unique within a domain and are not coupled to specific courses. They can also be carried over several semesters.
Role - Every user can have several roles, and the roles can change over the lifetime of a username. For example, over the course of studies, a student username assumes the role of "student" in different courses.
Resource multimedia piece of content
Rendering the process of generating output from resources
Granularity grain size of a resource. The system distinguishes between four generic levels of granularity: fragment, page, sequence and course
Fragment a resource of the smallest self-contained renderable grain size. Examples: one
image, one movie clip, one paragraph of text
Page a resource of the grain size which would be rendered as one page on the web and/or on
the printer
Sequence a resource which would be rendered as a sequence of pages, not necessarily
linear. Examples: one lesson, one chapter, one learning cycle
Course a sequence which represents the entirety of the resources belonging to a learning
unit into which learners can be enrolled. Examples: a University one-semester course, a
workshop, a High School class. Courses are defined by a "course-level" resource assembly map and an enrollment list with sections.
Resource Priority a resource can be regular, mandatory or optional. These resource priorities are only used in book-keeping of earned points by the learners. There are two additional resources priorities, start and finish which cannot be set by authors
Map a page, sequence or course resource
Start Resource the first resource or entry point of a map
Finish Resource the last resource or exit point of a map
Link path from one resource to another within a map
Condition condition under which a link can be taken. Examples for variables used in conditions: course parameters, learner performance, learner preferences, date
Condition Priority a condition can be used to recommend a certain link over others branching off from the same resource, to block a link if it is false, or to force a link over all others if true
Resource Assembly the process of generating a map by referencing and linking resources. The system allows for assembly of fragments and pages into a page; fragments, pages, sequences into a sequence; fragments, pages, sequences into a course.
Resource Pool the entirety of the resources stored and cataloged within the system itself
External Resource a resource which is not part of the resource pool
Author the author of a resource
Learner the consumer of resource renderings
State the entirety of the conditions which determine a particular learner's rendering of a
course.
Linear Resource Assembly the process of combining a set of resources into a non-branching
non-variable order, where the rendering is independent of state. Examples: an image and a
paragraph of text get assembled into one page where the image will always be rendered on top
of the paragraph.
If instructor is going to port the statistics table data to Excel, he/she can select the checkbox Output CSV format at top of the statistics table.
This name has been got from administration office of Michigan State University for evaluating the exams problem. Here we expanded this expression to homework problems as well.
The Guts of LON-CAPA Workshop - PAGE 38 -
- PAGE 4 -
A frictionless, massless pulley is attached to the ceiling, in a gravity field g. Mass Ma is greater than mass Mb. The tensions Tx,Ty, Tz, and the constant g are magnitudes. (For each, select: Greater than, Less than, Equal to, True, or False)
EMBED Word.Picture.8
Fig. 3.2.7: Graphical chart of student tries for
Atwood Machine Problem according
to every concept in 1 interval time.
@ B E G Q R ' ( ) A B C c d ? @ A Z [ { |
5 6 ` a b ~ j Uj Uj Uj Uj UjI U0J j U0J CJ$ j CJ$ UCJ$
j CJ$ U j UCJ H*CJ CJH > 9 N O P Q S T U V W X Y C R S \ ] ! $a$ $a$ 9 N O P Q S T U V W X Y C R S \ ] ! " $
H 5
~yto J d ] A^)xHg +! " $
H 5
M
8 C q
!
!
!
"
#
;
<
c
d
e
~
( ) C D E F G H ` a { | } ~ ݷݥݥ j UmH j UmH 6CJ PJ mH j UmH :CJ PJ mH j UmH 5;CJ PJ mH j% UmH
j UmH mH jH Ujk U0J j U 9 / 0 1 3 4 5
,
-
G
H
I
K
L
M
`
a
{
|
}
j UmH j UmH j UmH j
UmH :CJ PJ mH j UmH j UmH j UmH 6CJ PJ mH mH
j UmH >
M
8 C q ? r F ! S $ f O y Ŀ~ytoje`[ L N , \ ; p 4 s "
[ !
2 3 4 6 7 8 p q " # = > ? A B C P Q k l m o p q jl UmH j UmH jr UmH j UmH :CJ PJ mH jx UmH j UmH j~ UmH 6CJ PJ mH
j UmH j UmH mH ;
9 : ; = > ? Q R l m n p q r
% & @ j UmH jZ UmH j UmH j` UmH j UmH jf UmH j UmH 6CJ PJ mH
j UmH mH > ? r F ! S $ f O y 1 X
!
!
!
@ A B D E F ^ _ y z { } ~ ! 2 3 M N O Q R S p q j UmH jB UmH j UmH jH UmH j UmH jN UmH j UmH 6CJ PJ mH mH
j UmH jT UmH > " # $ E F ` a b d e f u v . / I J K M N O X Y s t u w x y j* UmH j UmH :CJ PJ mH j0 UmH j UmH j6 UmH j UmH 6CJ PJ mH j<