aimmath-commit Mailing List for AiM Assessment in Mathematics (Page 23)
Brought to you by:
gustav_delius,
npstrick
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
(73) |
Aug
(96) |
Sep
(240) |
Oct
(34) |
Nov
(12) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(31) |
Feb
(6) |
Mar
(17) |
Apr
(6) |
May
(5) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(19) |
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
(14) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <gus...@us...> - 2003-07-11 10:39:44
|
Update of /cvsroot/aimmath/AIM/imagecache
In directory sc8-pr-cvs1:/tmp/cvs-serv17085/imagecache
Added Files:
Tag: develop_2_1
README
Log Message:
A directory for temporary GIF files
--- NEW FILE: README ---
A directory for temporary GIF files containing dynamically
generated images.
|
|
From: <gus...@us...> - 2003-07-11 09:31:13
|
Update of /cvsroot/aimmath/AIM/WEB-INF/logs
In directory sc8-pr-cvs1:/tmp/cvs-serv16629/WEB-INF/logs
Added Files:
Tag: develop_2_1
README
Log Message:
directory for various log files created by AiM
--- NEW FILE: README ---
various log files for the system.
|
|
From: <nps...@us...> - 2003-07-10 23:32:12
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv8719/WEB-INF/maple
Modified Files:
Tag: develop_2_1
PackageList
Log Message:
Fixed corrupted version
Index: PackageList
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v
retrieving revision 1.1.1.1.2.2
retrieving revision 1.1.1.1.2.3
diff -C2 -d -r1.1.1.1.2.2 -r1.1.1.1.2.3
*** PackageList 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.2
--- PackageList 10 Jul 2003 23:32:09 -0000 1.1.1.1.2.3
***************
*** 1,4 ****
! aim/Trig
aim/Util1
aim/Quiz
aim/QuizCache
--- 1,34 ----
! OS
! Util
! I18n
! Class
! Pot
! Date
! ParsedText
! Random
! Cache
! ImageCache
! HTML
! LaTeX
! Local
! SafeParse
! aim/Test
! aim/Util
aim/Util1
+ aim/Mark
+ aim/SyntaxHints
+ aim/Diff
+ aim/Int
+ aim/Functions
+ aim/Trig
+ aim/Matrix
+ aim/Student
+ aim/Register
+ aim/Question
+ aim/TextQuestion
+ aim/MCQuestion
+ aim/MRQuestion
+ aim/MatrixQuestion
+ aim/MultiQuestion
aim/Quiz
aim/QuizCache
|
|
From: <nps...@us...> - 2003-07-10 21:38:17
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv23000/WEB-INF/maple
Removed Files:
Tag: develop_2_1
trylast.mpl
Log Message:
--- trylast.mpl DELETED ---
|
|
From: <nps...@us...> - 2003-07-10 21:32:12
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv21652/WEB-INF/maple
Modified Files:
Tag: develop_2_1
Make.mpl
Log Message:
Fixed stray diff markup
Index: Make.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Make.mpl,v
retrieving revision 1.1.1.1.2.3
retrieving revision 1.1.1.1.2.4
diff -C2 -d -r1.1.1.1.2.3 -r1.1.1.1.2.4
*** Make.mpl 10 Jul 2003 20:10:03 -0000 1.1.1.1.2.3
--- Make.mpl 10 Jul 2003 21:32:09 -0000 1.1.1.1.2.4
***************
*** 102,113 ****
Make_ok := true:
while (line <> 0) do
- <<<<<<< Make.mpl
- line := util_unixify(line):
- =======
# remove comment (possibly preceded by whitespace) or
# whitespace at end of line from line
line := StringTools:-RegSub("^([^ \t#]*)([ \t]*#.*|[ \t]*.*$)?", line, "\\1");
line := util_unixify(line);
- >>>>>>> 1.1.1.1.2.2
if line <> "" then
Make_ok := evalb(package_read(cat(line,".mpl")) and Make_ok):
--- 102,109 ----
|
|
From: <nps...@us...> - 2003-07-10 20:10:08
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin
In directory sc8-pr-cvs1:/tmp/cvs-serv8131/WEB-INF/maple/aim/admin
Modified Files:
Tag: develop_2_1
Generate.mpl Notify.mpl Quiz.mpl Register.mpl SourceDir.mpl
SourceFile.mpl Student.mpl Subject.mpl SubjectHome.mpl
Zone.mpl
Added Files:
Tag: develop_2_1
ZoneAdminHome.mpl ZoneStudentHome.mpl
Log Message:
Many changes, mostly to implement multipart questions
--- NEW FILE: ZoneAdminHome.mpl ---
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
read("Package.mpl"):
Package("aim/admin/ZoneAdminHome",""):
######################################################################
`aim/admin/Command/Declare`('`admin/ZoneAdminHome`',
['Parameter',
"Action" ::
{"LoadZoneAdminHome","SaveZoneAdminHome"} =
"LoadZoneAdminHome"
],
['Parameter',"HeadText"::`HTML/String` = ""],
['Parameter',"FootText"::`HTML/String` = ""],
##################################################
['Action',"LoadZoneAdminHome",
"Reload the home page header and footer from disk.",
['LinkText' = __("Reload home page")]],
['Action',"SaveZoneAdminHome",
"Save options.",
['LinkText' = __("Save home page")]],
##################################################
['Template',
[["a", "name"="top"]],
["center",
["h1",__("Zone administrator login page editor")]],
["br"],
[["hr","noshade"]],
[["table","width" = "100%"],
["tr",
[["td","width" = "14%"],`HTML/CloseButton`],
[["td","width" = "13%"],
[["a", "href" = "#bottom"],__("Bottom")]],
[["td","width" = "17%"],{["LoadZoneAdminHome"]}],
[["td","width" = "17%"],{["SaveZoneAdminHome"]}],
[["td","width" = "13%"],
[["a", "href" = "#header"],__("Header")]],
[["td","width" = "13%"],
[["a", "href" = "#footer"],__("Footer")]],
[["td","width" = "13%"],
[["a", "href" = "#preview"],__("Preview")]]]],
[["hr", "noshade"]],
["h2",__("Home page")],
["br"],
__("#Explain home page head and foot"),
[["a", "name" = "header"],["h3",__("Header:")]],
["br"],
[["textarea", "name" = "HeadText", "cols" = "70", "rows" = "20"],
{"headtext"}
],
["br"],
[["a", "name"="footer"],["h3",__("Footer:")]],
["br"],
[["textarea", "name" = "FootText", "cols" = "70", "rows" = "10"],
{"foottext"}
],
["br"],
[["hr", "noshade"]],
[["a", "name" = "preview"],["h3",__("Preview:")]],
{"headtext"},
["hr"],
[["font", "color" = "blue"],
__("Subject selection form goes here.")
],
["hr"],
{"foottext"},
["br"],
[["hr", "noshade"]],
[["table","width" = "100%"],
["tr",
[["td","width" = "14%"],`HTML/CloseButton`],
[["td","width" = "17%"],{["LoadZoneAdminHome"]}],
[["td","width" = "17%"],{["SaveZoneAdminHome"]}],
[["td","width" = "13%"],
[["a", "href" = "#top"],__("Top")]],
[["td","width" = "13%"],
[["a", "href" = "#header"],__("Header")]],
[["td","width" = "13%"],
[["a", "href" = "#footer"],__("Footer")]],
[["td","width" = "13%"],
[["a", "href" = "#preview"],__("Preview")]]]],
[["hr", "noshade"]],
[["a", "name"="bottom"]]
],
##################################################
['Process',
proc(page::`aim/admin/Page`,p::table)
local headtext,foottext,headfile,footfile,action;
headfile := cat(DefaultZone['RootDir'],"/adminhead.html");
footfile := cat(DefaultZone['RootDir'],"/adminfoot.html");
action := p["Action"];
if action = "LoadZoneAdminHome" then
headtext := traperror(`Util/TextFileContents`(headfile));
if headtext = lasterror then
headtext := "<h1>Administrator login page</h1>\n<br/>\n";
fi;
foottext := traperror(`Util/TextFileContents`(footfile));
if foottext = lasterror then foottext := ""; fi;
else
headtext := p["HeadText"];
if headtext = "" then
headtext := "<h1>Administrator login page</h1>\n<br/>\n";
fi;
foottext := p["FootText"];
fprintf(headfile,"%s",headtext);
fprintf(footfile,"%s",foottext);
traperror(fclose(headfile));
traperror(fclose(footfile));
fi;
page['Title'] :=__("Administrator login page edit:");
page['FillTemplate',
"Title" = subject['Title'],
"headtext" = headtext,
"foottext" = foottext
];
end
]
):
######################################################################
EndPackage():
--- NEW FILE: ZoneStudentHome.mpl ---
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
read("Package.mpl"):
Package("aim/admin/ZoneStudentHome",""):
######################################################################
`aim/admin/Command/Declare`('`admin/ZoneStudentHome`',
['Parameter',
"Action" ::
{"LoadZoneStudentHome","SaveZoneStudentHome"} =
"LoadZoneStudentHome"
],
['Parameter',"HeadText"::`HTML/String` = ""],
['Parameter',"FootText"::`HTML/String` = ""],
##################################################
['Action',"LoadZoneStudentHome",
"Reload the home page header and footer from disk.",
['LinkText' = __("Reload home page")]],
['Action',"SaveZoneStudentHome",
"Save options.",
['LinkText' = __("Save home page")]],
##################################################
['Template',
[["a", "name"="top"]],
["center",
["h1",__("Zone student login page editor")]],
["br"],
[["hr","noshade"]],
[["table","width" = "100%"],
["tr",
[["td","width" = "14%"],`HTML/CloseButton`],
[["td","width" = "13%"],
[["a", "href" = "#bottom"],__("Bottom")]],
[["td","width" = "17%"],{["LoadZoneStudentHome"]}],
[["td","width" = "17%"],{["SaveZoneStudentHome"]}],
[["td","width" = "13%"],
[["a", "href" = "#header"],__("Header")]],
[["td","width" = "13%"],
[["a", "href" = "#footer"],__("Footer")]],
[["td","width" = "13%"],
[["a", "href" = "#preview"],__("Preview")]]]],
[["hr", "noshade"]],
["h2",__("Home page")],
["br"],
__("#Explain home page head and foot"),
[["a", "name" = "header"],["h3",__("Header:")]],
["br"],
[["textarea", "name" = "HeadText", "cols" = "70", "rows" = "20"],
{"headtext"}
],
["br"],
[["a", "name"="footer"],["h3",__("Footer:")]],
["br"],
[["textarea", "name" = "FootText", "cols" = "70", "rows" = "10"],
{"foottext"}
],
["br"],
[["hr", "noshade"]],
[["a", "name" = "preview"],["h3",__("Preview:")]],
{"headtext"},
["hr"],
[["font", "color" = "blue"],
__("Subject selection form goes here.")
],
["hr"],
{"foottext"},
["br"],
[["hr", "noshade"]],
[["table","width" = "100%"],
["tr",
[["td","width" = "14%"],`HTML/CloseButton`],
[["td","width" = "17%"],{["LoadZoneStudentHome"]}],
[["td","width" = "17%"],{["SaveZoneStudentHome"]}],
[["td","width" = "13%"],
[["a", "href" = "#top"],__("Top")]],
[["td","width" = "13%"],
[["a", "href" = "#header"],__("Header")]],
[["td","width" = "13%"],
[["a", "href" = "#footer"],__("Footer")]],
[["td","width" = "13%"],
[["a", "href" = "#preview"],__("Preview")]]]],
[["hr", "noshade"]],
[["a", "name"="bottom"]]
],
##################################################
['Process',
proc(page::`aim/admin/Page`,p::table)
local headtext,foottext,headfile,footfile,action;
headfile := cat(DefaultZone['RootDir'],"/studenthead.html");
footfile := cat(DefaultZone['RootDir'],"/studentfoot.html");
action := p["Action"];
if action = "LoadZoneStudentHome" then
headtext := traperror(`Util/TextFileContents`(headfile));
if headtext = lasterror then
headtext := "<h1>Administrator login page</h1>\n<br/>\n";
fi;
foottext := traperror(`Util/TextFileContents`(footfile));
if foottext = lasterror then foottext := ""; fi;
else
headtext := p["HeadText"];
if headtext = "" then
headtext := "<h1>Administrator login page</h1>\n<br/>\n";
fi;
foottext := p["FootText"];
fprintf(headfile,"%s",headtext);
fprintf(footfile,"%s",foottext);
traperror(fclose(headfile));
traperror(fclose(footfile));
fi;
page['Title'] :=__("Administrator login page edit:");
page['FillTemplate',
"Title" = subject['Title'],
"headtext" = headtext,
"foottext" = foottext
];
end
]
):
######################################################################
EndPackage():
Index: Generate.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Generate.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Generate.mpl 5 May 2003 03:25:46 -0000 1.2
--- Generate.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 109,119 ****
cat(
__("Passwords were generated for the following students:"),
! "\n<br>\n",
studentlist,
! "\n<br>\n",
sprintf(
__("Click on the %s link to send email to these students, telling them their passwords."),
page['ActionLink',"Notify",[idlist]]),
! "\n<br>\n");
fi;
else
--- 109,119 ----
cat(
__("Passwords were generated for the following students:"),
! "\n<br/>\n",
studentlist,
! "\n<br/>\n",
sprintf(
__("Click on the %s link to send email to these students, telling them their passwords."),
page['ActionLink',"Notify",[idlist]]),
! "\n<br/>\n");
fi;
else
***************
*** 123,127 ****
"<font color='red'>",
__("There was an error while generating passwords:"),
! "</font>\n<br>\n<pre>\n",
err,
"\n</pre>\n");
--- 123,127 ----
"<font color='red'>",
__("There was an error while generating passwords:"),
! "</font>\n<br/>\n<pre>\n",
err,
"\n</pre>\n");
Index: Notify.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Notify.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Notify.mpl 5 May 2003 03:25:46 -0000 1.2
--- Notify.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 107,113 ****
html,
__("The following students were notified of their passwords:"),
! "\n<br>\n",
"<table>\n",op(map(line,notified)),"</table>\n",
! "<br>\n";
fi;
--- 107,113 ----
html,
__("The following students were notified of their passwords:"),
! "\n<br/>\n",
"<table>\n",op(map(line,notified)),"</table>\n",
! "<br/>\n";
fi;
***************
*** 115,123 ****
html :=
html,
! "<hr>",
__("The following students were not notified, because their email addresses are not known:"),
! "\n<br>\n",
"<table>\n",op(map(line,noemail)),"</table>\n",
! "<br>\n";
fi;
--- 115,123 ----
html :=
html,
! "<hr/>",
__("The following students were not notified, because their email addresses are not known:"),
! "\n<br/>\n",
"<table>\n",op(map(line,noemail)),"</table>\n",
! "<br/>\n";
fi;
***************
*** 125,135 ****
html :=
html,
! "<hr>",
__("The following students were not found in the register:"),
! "\n<br>\n",
"<table>\n",
op(map(i -> cat("<tr><td>",i,"</td></tr>\n"),badids)),
"</table>\n",
! "<br>\n";
fi;
html := cat(html);
--- 125,135 ----
html :=
html,
! "<hr/>",
__("The following students were not found in the register:"),
! "\n<br/>\n",
"<table>\n",
op(map(i -> cat("<tr><td>",i,"</td></tr>\n"),badids)),
"</table>\n",
! "<br/>\n";
fi;
html := cat(html);
Index: Quiz.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Quiz.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Quiz.mpl 5 May 2003 03:25:46 -0000 1.2
--- Quiz.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 187,191 ****
"rows" = "15" ],
{"selectortext"}],
! "\n<br>\n",
[["hr", "noshade"]],
--- 187,191 ----
"rows" = "15" ],
{"selectortext"}],
! "\n<br/>\n",
[["hr", "noshade"]],
***************
*** 252,256 ****
if err = lasterror then
page['SetError',
! cat(__("Error while creating quiz %s:"),"\n<br>\n%s<br>\n"),
quizname,err];
RETURN();
--- 252,256 ----
if err = lasterror then
page['SetError',
! cat(__("Error while creating quiz %s:"),"\n<br/>\n%s<br/>\n"),
quizname,err];
RETURN();
***************
*** 381,385 ****
[["th", "align" = "left", "width" = "10%"]," "],
[["th", "align" = "left", "width" = "10%"]," "]],
! ["tr", [["td", "colspan" = "6"],["hr"]]]);
if p["ShowHiddenQuestions"] = "true" then
--- 381,385 ----
[["th", "align" = "left", "width" = "10%"]," "],
[["th", "align" = "left", "width" = "10%"]," "]],
! ["tr", [["td", "colspan" = "7"],["hr"]]]);
if p["ShowHiddenQuestions"] = "true" then
Index: Register.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Register.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Register.mpl 5 May 2003 03:25:46 -0000 1.2
--- Register.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 355,359 ****
textfile := p["FileToUpload"];
if not(type([textfile],[string])) then
! page['SetError',__("Invalid upload file:<br> %A<br>"),textfile];
RETURN();
fi;
--- 355,359 ----
textfile := p["FileToUpload"];
if not(type([textfile],[string])) then
! page['SetError',__("Invalid upload file:<br/> %A<br/>"),textfile];
RETURN();
fi;
***************
*** 366,370 ****
err := traperror(register['LoadText',p["FileToUpload"]]);
if err = lasterror then
! page['SetError',__("Error uploading register:<br>%s<br>"),err];
RETURN();
fi;
--- 366,370 ----
err := traperror(register['LoadText',p["FileToUpload"]]);
if err = lasterror then
! page['SetError',__("Error uploading register:<br/>%s<br/>"),err];
RETURN();
fi;
***************
*** 373,377 ****
err := traperror(register['MergeText',textfile]);
if err = lasterror then
! page['SetError',__("Error uploading register:<br>%s<br>"),err];
RETURN();
fi;
--- 373,377 ----
err := traperror(register['MergeText',textfile]);
if err = lasterror then
! page['SetError',__("Error uploading register:<br/>%s<br/>"),err];
RETURN();
fi;
***************
*** 436,440 ****
"<td><input type='checkbox' name='",s['ID'],"Selected'",
`if`(member(s['ID'],sl)," checked",""),
! "></td>\n",
"<td>",s['ID'],"</td>\n",
"<td>",s['Name'],"</td>\n",
--- 436,440 ----
"<td><input type='checkbox' name='",s['ID'],"Selected'",
`if`(member(s['ID'],sl)," checked",""),
! "/></td>\n",
"<td>",s['ID'],"</td>\n",
"<td>",s['Name'],"</td>\n",
***************
*** 467,471 ****
"</tr>\n",
op(map(studentline,studentlist,page,selected)),
! "</table>\n<br>\n");
page['Title'] :=
--- 467,471 ----
"</tr>\n",
op(map(studentline,studentlist,page,selected)),
! "</table>\n<br/>\n");
page['Title'] :=
Index: SourceDir.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/SourceDir.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** SourceDir.mpl 5 May 2003 03:25:46 -0000 1.2
--- SourceDir.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 167,171 ****
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
--- 167,171 ----
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br/>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
***************
*** 174,178 ****
"<td>",quiztitle,"</td></tr>\n",
"</table>",
! "\n<br>\n");
shorttitle :=
sprintf("%s:%s:%s",__("Source"),subjname,quizname);
--- 174,178 ----
"<td>",quiztitle,"</td></tr>\n",
"</table>",
! "\n<br/>\n");
shorttitle :=
sprintf("%s:%s:%s",__("Source"),subjname,quizname);
***************
*** 181,190 ****
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
"<td>",subjtitle,"</td></tr>\n",
"</table>",
! "\n<br>\n");
shorttitle :=
sprintf("%s:%s",__("Source"),subjname);
--- 181,190 ----
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br/>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
"<td>",subjtitle,"</td></tr>\n",
"</table>",
! "\n<br/>\n");
shorttitle :=
sprintf("%s:%s",__("Source"),subjname);
***************
*** 194,198 ****
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
--- 194,198 ----
title :=
cat(
! "<h1>",__("AIM source files"),"</h1><br/>\n",
"<table>\n",
"<tr><td>",__("Subject:"),"</td>\n",
***************
*** 201,205 ****
"<td>",p["Dir"],"</td></tr>\n",
"</table>",
! "\n<br>\n");
shorttitle :=
sprintf("%s:%s",__("Source"),subjname,p["Dir"]);
--- 201,205 ----
"<td>",p["Dir"],"</td></tr>\n",
"</table>",
! "\n<br/>\n");
shorttitle :=
sprintf("%s:%s",__("Source"),subjname,p["Dir"]);
Index: SourceFile.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/SourceFile.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** SourceFile.mpl 5 May 2003 03:25:46 -0000 1.2
--- SourceFile.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 314,318 ****
if nops(questions) = 0 then
! compreport := compreport,"\n<br>\n",__("No questions found"),"\n<br>\n";
fi;
--- 314,318 ----
if nops(questions) = 0 then
! compreport := compreport,"\n<br/>\n",__("No questions found"),"\n<br/>\n";
fi;
***************
*** 341,352 ****
compreport :=
compreport,
! "<hr noshade>\n",
sprintf(
! __("Question <font color='red'><tt>%s</tt></font>: compilation error\n<br>\n"),
qname),
msg;
if errline > 0 then
! compreport := compreport,"\n<hr>\n<pre>\n";
for i from 1 to errline - 1 do
compreport := compreport,lines[i];
--- 341,352 ----
compreport :=
compreport,
! "<hr noshade/>\n",
sprintf(
! __("Question <font color='red'><tt>%s</tt></font>: compilation error\n<br/>\n"),
qname),
msg;
if errline > 0 then
! compreport := compreport,"\n<hr/>\n<pre>\n";
for i from 1 to errline - 1 do
compreport := compreport,lines[i];
***************
*** 363,367 ****
fi;
! compreport := compreport,"<hr noshade>\n";
else
compreport :=
--- 363,367 ----
fi;
! compreport := compreport,"<hr noshade/>\n";
else
compreport :=
***************
*** 369,375 ****
"<font color='red'>",
__("Error: malformed compilation report"),
! "</font>\n<br>\n<pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre>\n<br>\n";
fi;
od;
--- 369,375 ----
"<font color='red'>",
__("Error: malformed compilation report"),
! "</font>\n<br/>\n<pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre>\n<br/>\n";
fi;
od;
Index: Student.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Student.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Student.mpl 5 May 2003 03:25:46 -0000 1.2
--- Student.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 236,240 ****
"value=\"",student['Password'],"\" ",
"size=\"50\" ",
! "name=\"StudentPassword\"></td>\n",
"</tr>\n");
--- 236,240 ----
"value=\"",student['Password'],"\" ",
"size=\"50\" ",
! "name=\"StudentPassword\"/></td>\n",
"</tr>\n");
Index: Subject.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Subject.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Subject.mpl 5 May 2003 03:25:46 -0000 1.2
--- Subject.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 340,344 ****
if err = lasterror then
page['SetError',
! cat(__("Error while creating subject %s:"),"\n<br>\n%s<br>\n"),
subjectname,err];
RETURN();
--- 340,344 ----
if err = lasterror then
page['SetError',
! cat(__("Error while creating subject %s:"),"\n<br/>\n%s<br/>\n"),
subjectname,err];
RETURN();
Index: SubjectHome.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/SubjectHome.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** SubjectHome.mpl 5 May 2003 03:25:46 -0000 1.2
--- SubjectHome.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 123,127 ****
if headtext = lasterror then
! headtext := sprintf("<h1>%s</h1>\n<br>\n",subject['Title']);
fi;
--- 123,127 ----
if headtext = lasterror then
! headtext := sprintf("<h1>%s</h1>\n<br/>\n",subject['Title']);
fi;
***************
*** 133,137 ****
headtext := p["HeadText"];
if headtext = "" then
! headtext := sprintf("<h1>%s</h1>\n<br>\n",subject['Title']);
fi;
--- 133,137 ----
headtext := p["HeadText"];
if headtext = "" then
! headtext := sprintf("<h1>%s</h1>\n<br/>\n",subject['Title']);
fi;
Index: Zone.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/admin/Zone.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Zone.mpl 5 May 2003 03:25:46 -0000 1.2
--- Zone.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 86,89 ****
--- 86,105 ----
'Command' = "admin/Register"]],
+ ['Action',"EditStudentHome",
+ "Edit the header and footer for the home page seen by students.
+ (In between the header and footer goes an automatically generated
+ quiz selection form.",
+ ['LinkText' = __("Edit student login page"),
+ 'Command' = "admin/ZoneStudentHome"]
+ ],
+
+ ['Action',"EditAdminHome",
+ "Edit the header and footer for the home page seen by students.
+ (In between the header and footer goes an automatically generated
+ quiz selection form.",
+ ['LinkText' = __("Edit administrator login page"),
+ 'Command' = "admin/ZoneAdminHome"]
+ ],
+
##################################################
***************
*** 190,195 ****
--- 206,213 ----
[["td", "width" = "50%", "align" = "right"],
{"togglehidden"}]]],
+ {"explainhidden"},
{"subjecttable"},
["br"],
+ ["hr"],
__("New subject:")," ",
[["inputtext", "name" = "SubjectToCreate", "value" = ""]],
***************
*** 198,201 ****
--- 216,230 ----
__("#Explain new subjects hidden"),
[["hr","noshade"]],
+
+ ##########
+
+ ["h2",__("Login pages")],
+ ["br"],
+ {["EditStudentHome"]},
+ ["br"],
+ {["EditAdminHome"]},
+ ["br"],
+ [["hr","noshade"]],
+
[["table","width" = "100%"],
["tr",
***************
*** 206,244 ****
[["td","width" = "17%"],{["SaveZoneOptions"]}]]],
[["hr", "noshade"]],
-
- ##########
-
- ["h2",__("Student login page")],
- ["br"],
- __("#Explain student head and foot"),
- ["h3",__("Header:")],
- ["br"],
- [["textarea", "name" = "StudentHead", "cols" = "70", "rows" = "20"],
- {"studenthead"}
- ],
- ["br"],
- ["h3",__("Footer:")],
- ["br"],
- [["textarea", "name" = "StudentFoot", "cols" = "70", "rows" = "10"],
- {"studentfoot"}
- ],
- ["br"],
-
- ["h2",__("Administrator login page")],
- ["br"],
- __("#Explain admin head and foot"),
- ["h3",__("Header:")],
- ["br"],
- [["textarea", "name" = "AdminHead", "cols" = "70", "rows" = "20"],
- {"adminhead"}
- ],
- ["br"],
- ["h3",__("Footer:")],
- ["br"],
- [["textarea", "name" = "AdminFoot", "cols" = "70", "rows" = "10"],
- {"adminfoot"}
- ],
- ["br"],
-
[["a", "name"="bottom"]]
],
--- 235,238 ----
***************
*** 250,254 ****
local subject,excludedsubject,nam,subjectlist,ord,err,
! subjecttable,subjectnumber,togglehidden,hiddensubjects,
studenthead,studentfoot,adminhead,adminfoot,
studentheadfile,studentfootfile,adminheadfile,adminfootfile;
--- 244,249 ----
local subject,excludedsubject,nam,subjectlist,ord,err,
! subjecttable,subjectnumber,togglehidden,explainhidden,
! hiddensubjects,visiblesubjects,
studenthead,studentfoot,adminhead,adminfoot,
studentheadfile,studentfootfile,adminheadfile,adminfootfile;
***************
*** 363,437 ****
fi;
- subjecttable :=
- `new/HTML/Tag`(
- ["table", "width" = "100%"],
- ["tr",
- [["th", "align" = "left", "width" = "10%"],
- __("Subject number")],
- [["th", "align" = "left", "width" = "50%"],
- __("Name")],
- [["th", "align" = "left", "width" = "10%"]," "],
- [["th", "align" = "left", "width" = "10%"]," "],
- [["th", "align" = "left", "width" = "10%"]," "],
- [["th", "align" = "left", "width" = "10%"]," "]],
- ["tr", [["td", "colspan" = "8"],["hr"]]]);
-
- if p["ShowHiddenSubjects"] = "true" then
- togglehidden := page['ActionLink',"HideHiddenSubjects"];
- subjecttable['AddContents',
- ["tr",[["td", "colspan" = "8"],
- __("Visible subjects")]]];
- else
- togglehidden :=
- sprintf(__("#Explain hidden subjects (%s)"),
- page['ActionLink',"ShowHiddenSubjects"]);
- fi;
! subjectnumber := 0;
! for nam in DefaultZone['SubjectNames'] do
! subjectnumber := subjectnumber + 1;
! subjecttable['AddContents',
! ["tr",
! [["td", "align" = "left"],
! [["inputtext",
! "name" = cat(nam,"Order"),
! "value" = sprintf("%A",subjectnumber),
! "size" = "3"]]],
! [["td","align" = "left"],nam],
! [["td","align" = "left"],
! page['ActionLink',"LoadSubjectOptions",[nam]]],
! [["td","align" = "left"],
! page['ActionLink',"AnalyzeSubject",[nam]]],
! [["td","align" = "left"],
! page['ActionLink',"ToggleSubject",[nam],__("Hide")]]]]
! od;
! if p["ShowHiddenSubjects"] = "true" then
! subjecttable['AddContents',
! ["tr",[["td", "colspan" = "8"],["hr"]]],
! ["tr",[["td", "colspan" = "8"],
! __("Hidden subjects")]]];
! hiddensubjects :=
! `OS/ListFiles`(cat(DefaultZone['RootDir'],"/subjects"));
! hiddensubjects :=
! {op(hiddensubjects)} minus {op(DefaultZone['SubjectNames'])};
! hiddensubjects := sort([op(hiddensubjects)]);
! for nam in hiddensubjects do
subjecttable['AddContents',
["tr",
! [["td", "align" = "left"], " "],
! [["td","align" = "left"],nam],
! [["td","align" = "left"],
! page['ActionLink',"LoadSubjectOptions",[nam]]],
! [["td","align" = "left"]," "],
! [["td","align" = "left"],
! page['ActionLink',"ToggleSubject",[nam],__("Unhide")]]]]
! od;
! fi;
page['Title'] := __("Zone:");
--- 358,456 ----
fi;
! visiblesubjects := DefaultZone['SubjectNames'];
! hiddensubjects :=
! `OS/ListFiles`(cat(DefaultZone['RootDir'],"/subjects"));
! hiddensubjects :=
! {op(hiddensubjects)} minus {op(visiblesubjects)};
! hiddensubjects := sort([op(hiddensubjects)]);
! if visiblesubjects = [] and
! hiddensubjects = [] then
! subjecttable :=
! __("There are no visible or hidden subjects for this zone.");
! else
! subjecttable :=
! `new/HTML/Tag`(
! ["table", "width" = "100%"],
! ["tr",
! [["th", "align" = "left", "width" = "10%"],
! __("Subject number")],
! [["th", "align" = "left", "width" = "50%"],
! __("Name")],
! [["th", "align" = "left", "width" = "10%"]," "],
! [["th", "align" = "left", "width" = "10%"]," "],
! [["th", "align" = "left", "width" = "10%"]," "],
! [["th", "align" = "left", "width" = "10%"]," "]],
! ["tr", [["td", "colspan" = "8"],["hr"]]]);
! if p["ShowHiddenSubjects"] = "true" then
! togglehidden := page['ActionLink',"HideHiddenSubjects"];
! explainhidden := "";
! subjecttable['AddContents',
! ["tr",[["td", "colspan" = "8"],
! __("Visible subjects")]]];
! else
! togglehidden := page['ActionLink',"ShowHiddenSubjects"];
! explainhidden :=
! sprintf(__("#Explain hidden subjects (%s)"),
! page['ActionLink',"ShowHiddenSubjects"]);
! fi;
! if visiblesubjects = [] then
subjecttable['AddContents',
["tr",
! [["td", "align" = "center","colspan" = "8"],
! __("There are no visible subjects for this zone.")]]];
! else
! subjectnumber := 0;
! for nam in DefaultZone['SubjectNames'] do
! subjectnumber := subjectnumber + 1;
! subjecttable['AddContents',
! ["tr",
! [["td", "align" = "left"],
! [["inputtext",
! "name" = cat(nam,"Order"),
! "value" = sprintf("%A",subjectnumber),
! "size" = "3"]]],
! [["td","align" = "left"],nam],
! [["td","align" = "left"],
! page['ActionLink',"LoadSubjectOptions",[nam]]],
! [["td","align" = "left"],
! page['ActionLink',"AnalyzeSubject",[nam]]],
! [["td","align" = "left"],
! page['ActionLink',"ToggleSubject",[nam],__("Hide")]]]]
! od;
! fi;
!
! if p["ShowHiddenSubjects"] = "true" then
! if hiddensubjects = [] then
! subjecttable['AddContents',
! ["tr",
! [["td", "align" = "center","colspan" = "8"],
! __("There are no hidden subjects for this zone.")]]];
! else
! subjecttable['AddContents',
! ["tr",[["td", "colspan" = "8"],["hr"]]],
! ["tr",[["td", "colspan" = "8"],
! __("Hidden subjects")]]];
!
! for nam in hiddensubjects do
! subjecttable['AddContents',
! ["tr",
! [["td", "align" = "left"], " "],
! [["td","align" = "left"],nam],
! [["td","align" = "left"],
! page['ActionLink',"LoadSubjectOptions",[nam]]],
! [["td","align" = "left"]," "],
! [["td","align" = "left"],
! page['ActionLink',"ToggleSubject",[nam],__("Unhide")]]]]
! od;
! fi;
! fi;
! fi;
page['Title'] := __("Zone:");
***************
*** 452,455 ****
--- 471,475 ----
page['FillTemplate',
"togglehidden" = togglehidden,
+ "explainhidden" = explainhidden,
"subjecttable" = subjecttable['ToString'],
"studenthead" = studenthead,
|
|
From: <nps...@us...> - 2003-07-10 20:10:08
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/review
In directory sc8-pr-cvs1:/tmp/cvs-serv8131/WEB-INF/maple/aim/review
Modified Files:
Tag: develop_2_1
Quiz.mpl
Added Files:
Tag: develop_2_1
Question.mpl
Log Message:
Many changes, mostly to implement multipart questions
--- NEW FILE: Question.mpl ---
# @(#)$Id: Question.mpl,v 1.1.2.1 2003/07/10 20:10:04 npstrick Exp $
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
read("Package.mpl"):
Package("aim/review/Question","
This package defines the GUI allowing the administrator
to review a student's answers to a question.
"
):
######################################################################
rqc0 := `new/aim/Quiz/Context`():
rqc0['StudentIsGuest'] := false:
rqc0['StudentIsTeacher'] := true:
rqc0['QuizReviewMode'] := false:
rqc0['QuestionReviewMode'] := true:
rqc0['QuizTryMode'] := false:
rqc0['QuestionTryMode'] := false:
rqc0['UseRecordedSeed'] := true:
rqc0['UseSeedParameter'] := true:
rqc0['GenerateSeed'] := false:
rqc0['ReportSeed'] := true:
rqc0['InviteSeedSelection'] := false:
rqc0['RecordSeed'] := false:
rqc0['DeleteSeed'] := false:
rqc0['InviteAnswers'] := false:
rqc0['InviteValidation'] := false:
rqc0['InviteMarking'] := false:
rqc0['InviteNewVersion'] := false:
rqc0['InviteNewQuiz'] := false:
rqc0['AcceptAnswers'] := true:
rqc0['LoadHistory'] := true:
rqc0['SaveHistory'] := false:
rqc0['AcceptAnswers'] := true:
rqc0['UseRecordedAnswers'] := true:
rqc0['MarkRequested'] := true:
rqc0['ShowPrevious'] := true:
rqc0['ShowFeedback'] := true:
rqc0['ShowMark'] := true:
rqc0['ShowRightAnswer'] := false:
rqc0['ShowSolution'] := false:
rqc0['ShowNotes'] := true:
rqc0['ShowMarkSummary'] := true:
`Package/Assign`(
`aim/review/Question/Context/NoSol`::`aim/Quiz/Context`,
"A #`aim/Quiz/Context`# object for use in reviewing quizzes.",
eval(rqc0)
):
unassign('rqc0'):
######################################################################
rqc1 := `new/aim/Quiz/Context`():
rqc1['StudentIsGuest'] := false:
rqc1['StudentIsTeacher'] := true:
rqc1['QuizReviewMode'] := false:
rqc1['QuestionReviewMode'] := true:
rqc1['QuizTryMode'] := false:
rqc1['QuestionTryMode'] := false:
rqc1['UseRecordedSeed'] := true:
rqc1['UseSeedParameter'] := true:
rqc1['GenerateSeed'] := false:
rqc1['ReportSeed'] := true:
rqc1['InviteSeedSelection'] := false:
rqc1['RecordSeed'] := false:
rqc1['DeleteSeed'] := false:
rqc1['InviteAnswers'] := false:
rqc1['InviteValidation'] := false:
rqc1['InviteMarking'] := false:
rqc1['InviteNewVersion'] := false:
rqc1['InviteNewQuiz'] := false:
rqc1['AcceptAnswers'] := true:
rqc1['LoadHistory'] := true:
rqc1['SaveHistory'] := false:
rqc1['AcceptAnswers'] := true:
rqc1['UseRecordedAnswers'] := true:
rqc1['MarkRequested'] := true:
rqc1['ShowPrevious'] := true:
rqc1['ShowFeedback'] := true:
rqc1['ShowMark'] := true:
rqc1['ShowRightAnswer'] := true:
rqc1['ShowSolution'] := true:
rqc1['ShowNotes'] := true:
rqc1['ShowMarkSummary'] := true:
`Package/Assign`(
`aim/review/Question/Context/Sol`::`aim/Quiz/Context`,
"A #`aim/Quiz/Context`# object for use in reviewing quizzes.",
eval(rqc1)
):
unassign('rqc1'):
######################################################################
`aim/admin/Command/Declare`('`review/Question`',
['Parameter',"SubjectName" = 'required',""],
['Parameter',"QuizName" = 'required',""],
['Parameter',"QuizSeed"::integer = 0,""],
['Parameter',"QuestionLabel"::string = 'required',""],
['Parameter',"AttemptNumber"::integer = -1,""],
['Parameter',"StudentID" = 'required',""],
['Parameter',"ShowSolution"::boolean = false,""],
##################################################
['Action',"ReviewQuestion",
"Review the question",
['LinkText' = __("Review"),
'Arguments' = ["AttemptNumber"]]],
['Action',"ShowSolution",
"Show the correct answers and solutions",
['LinkText' = __("Show solutions"),
'ExtraScript' = "f.ShowSolution.value = 'true';"]],
['Action',"HideSolution",
"Hide the correct answers and solutions",
['LinkText' = __("Hide solutions"),
'ExtraScript' = "f.ShowSolution.value = 'false';"]],
['Action',"EditSource",
"Edit the source file for a question",
['Command' = "admin/SourceFile",
'LinkText' = __("Edit source file"),
'Arguments' = ["SourceFile"]]],
['Action',"LoadSubjectOptions",
"Visit the main subject admin page",
['Command' = "admin/Subject",
'LinkText' = __("Subject options")]],
['Action',"LoadQuizOptions",
"Visit the main quiz admin page",
['Command' = "admin/Quiz",
'LinkText' = __("Quiz options")]],
['Action',"ReviewSubject",
"Review this student's results in all quizzes for this subject.",
['Command' = "review/Subject",
'LinkText' = __("Review subject")]],
['Action',"ReviewQuiz",
"Review this student's results in all questions for this quiz.",
['Command' = "review/Quiz",
'LinkText' = __("Review quiz")]],
# ['Action',"EmailStudent",
# "Send email to this student",
# ['Command' = "email/Student",
# 'LinkText' = __("Email student")]],
['Action',"LoadStudentDetails",
"Edit the student's personal details",
['LinkText' = __("Student details"),
'Command' = "admin/Student"]],
##################################################
['Template',
["center",
["h1",
__("Question review page")]],
["br"],
[["hr","noshade"]],
[["table","width" = "100%"],
["tr",
[["td","width" = "16%"],`HTML/CloseButton`],
[["td","width" = "17%"],{["LoadSubjectOptions"]}],
[["td","width" = "17%"],{["LoadQuizOptions"]}],
[["td","width" = "17%"],{"emailstudent"}],
[["td","width" = "17%"],{"adminstudent"}],
[["td","width" = "17%"],{"togglesolution"}]]],
[["hr", "noshade"]],
["table",
["tr",
[["th","align" = "left"],__("Subject")],
["td",{"subjecttitle"}],
["td",{["LoadSubjectOptions"]}],
["td",{["ReviewSubject"]}]],
["tr",
[["th","align" = "left"],__("Quiz")],
["td",{"quiztitle"}],
["td",{["LoadQuizOptions"]}],
["td",{["ReviewQuiz"]}]],
["tr",
[["th","align" = "left"],__("Seed")],
["td",{"quizseed"}]],
["tr",
[["th","align" = "left"],__("Student name")],
["td",{"studentname"}],
["td",{"adminstudent"}],
["td",{"emailstudent"}]]],
{"attemptselector"},
["br"],
{"show"},
["br"],
[["hr", "noshade"]],
[["a", "name" = "bottom"]]
],
##################################################
['Process',
proc(page::`aim/admin/Page`,p::table)
local subject,register,quiz,id,
student,studentname,emailstudent,adminstudent,togglesolution,
seed,quizversion,quizinstance,history,labeltable,
question,label,rawtable,quizcontext,questionversion,
attemptnum,numattempts,subqversion,subqhistory,attempt,
questioninstance,attemptselector,i,bgcol;
subject := eval(page['Subject']);
register := eval(subject['GetRegister']);
id := p["StudentID"];
student := register['GetStudent',id];
if student = NULL then
studentname := __("Not known");
emailstudent := "";
adminstudent := "";
else
studentname := student['Name'];
emailstudent := student['EmailLink'];
adminstudent :=
page['ActionLink',"LoadStudentDetails"];
fi;
quiz := traperror(eval(subject['GetQuiz',p["QuizName"]]));
if not(type(quiz,`aim/Quiz`)) then
page['SetError',"%s: %s",__("Could not load quiz"),p["QuizName"]];
RETURN();
fi;
if p["QuizSeed"] = "0" then
seed := quiz['GetSeed',id,true];
if seed = NULL then
page['SetError',
__("Student %s (%s) has not attempted quiz %s"),
id,
`if`(student = NULL,__("name not known"),student['Name']),
quiz['Name']];
RETURN();
fi;
else
seed := traperror(sscanf(p["QuizSeed"],"%d")[1]);
if not(type(seed,posint)) then
page['SetError',__("Could not extract quiz seed")];
RETURN();
fi;
fi;
quizversion := eval(quiz['MakeVersion',seed]);
questionversion :=
eval(quizversion['LabelTable'][p["QuestionLabel"]]);
history := traperror(eval(quiz['GetHistory',id,seed]));
if not(type(history,`aim/Quiz/History`)) then
page['SetError',
__("Could not load history for quiz %s and student %s"),
quiz['Name'],
id];
RETURN();
fi;
labeltable := eval(history['LabelTable']);
attemptnum := op(sscanf(p["AttemptNumber"],"%d"));
if (attemptnum = 0) then
# Use raw answers supplied as parameters
rawtable := eval(param);
else
# Use raw answers from recorded history
rawtable := table([]);
numattempts := [];
for subqversion in questionversion['SubQuestions'] do
subqhistory :=
eval(labeltable[subqversion['Label']]);
if not(type([subqhistory],[`aim/Question/History`])) then
page['SetError',
__("Could not load history for question %s in quiz %s and student %s"),
p["QuizName"],
subqversion['Label'],
id];
RETURN();
fi;
numattempts := [op(numattempts),subqhistory['Count']];
attempt := traperror(eval(subqhistory['Attempt',attemptnum]));
if not(type([attempt],[`aim/Question/ShortAttempt`])) then
page['SetError',
__("Could not load attempt number %d for question %s in quiz %s and student %s"),
attemptnum,
subqversion['Label'],
p["QuizName"],
id];
fi;
rawtable[subqversion['CGILabel']] := attempt['RawAnswer'];
od;
fi;
if p["ShowSolution"] = "true" then
quizcontext := `aim/review/Quiz/Context/Sol`;
togglesolution := page['ActionLink',"HideSolution"];
else
quizcontext := `aim/review/Quiz/Context/NoSol`;
togglesolution := page['ActionLink',"ShowSolution"];
fi;
questioninstance :=
`aim/Question/MakeInstance/Recursive`(
eval(questionversion),eval(rawtable),eval(labeltable),
eval(quizcontext),false,attemptnum);
if numattempts = [] then
# The question has no bottom-level subquestions
attemptselector := "";
elif min(op(numattempts)) < max(op(numattempts)) then
# Something is wrong - all subquestions should have
# the same number of attempts
ERROR(
sprintf(
__("Inconsistent subquestion histories for question %s in quiz %s"),
p["QuestionLabel"],p["QuizName"]));
else
numattempts := numattempts[1];
if attemptnum < 0 then
# count backwards from the end
attemptnum := numattempts + 1 + attemptnum;
fi;
attemptselector :=
`new/HTML/Tag`(["tr"]);
if attemptnum > 1 then
attemptselector['AddContents',
["td",
page['ActionLink',
"ReviewQuestion",
[sprintf("%d",attemptnum - 1)],
__("Previous")]]];
fi;
for i from 1 to numattempts do
bgcol := `if`(i = attemptnum,"yellow","white");
attemptselector['AddContents',
[["td", "bgcolor" = bgcol],
page['ActionLink',
"ReviewQuestion",
[sprintf("%d",i)],
sprintf("%d",i)]]];
od;
if attemptnum < numattempts then
attemptselector['AddContents',
["td",
page['ActionLink',
"ReviewQuestion",
[sprintf("%d",attemptnum + 1)],
__("Next")]]];
fi;
fi;
attemptselector :=
`new/HTML/Tag`("table",eval(attemptselector));
attemptselector := attemptselector['ToString'];
page['Title'] :=
cat(__("Review:"),subject['Name'],":",
quiz['Name'],":",
questionversion['Label'],":",
student['Surname']);
page['FillTemplate',
"subjecttitle" = subject['Title'],
"quiztitle" = quiz['Title'],
"quizseed" = sprintf("%d",seed),
"studentid" = id,
"studentname" = studentname,
"emailstudent" = emailstudent,
"adminstudent" = adminstudent,
"togglesolution" = togglesolution,
"attemptselector" = attemptselector,
"show" = questioninstance['Show',quizcontext]
];
end
]
):
EndPackage():
Index: Quiz.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/review/Quiz.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Quiz.mpl 5 May 2003 03:25:46 -0000 1.2
--- Quiz.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 18,21 ****
--- 18,22 ----
rqc0['StudentIsTeacher'] := true:
rqc0['QuizReviewMode'] := true:
+ rqc0['QuestionReviewMode'] := false:
rqc0['QuizTryMode'] := false:
rqc0['QuestionTryMode'] := false:
***************
*** 40,46 ****
rqc0['ShowPrevious'] := true:
rqc0['ShowFeedback'] := true:
- rqc0['ShowFeedbackMC'] := true:
rqc0['ShowMark'] := true:
- rqc0['ShowMarkMC'] := true:
rqc0['ShowRightAnswer'] := false:
rqc0['ShowSolution'] := false:
--- 41,45 ----
***************
*** 62,65 ****
--- 61,65 ----
rqc1['StudentIsTeacher'] := true:
rqc1['QuizReviewMode'] := true:
+ rqc1['QuestionReviewMode'] := true:
rqc1['QuizTryMode'] := true:
rqc1['QuestionTryMode'] := true:
***************
*** 84,90 ****
rqc1['ShowPrevious'] := true:
rqc1['ShowFeedback'] := true:
- rqc1['ShowFeedbackMC'] := true:
rqc1['ShowMark'] := true:
- rqc1['ShowMarkMC'] := true:
rqc1['ShowRightAnswer'] := true:
rqc1['ShowSolution'] := true:
--- 84,88 ----
***************
*** 125,133 ****
'ExtraScript' = "f.ShowSolution.value = 'false';"]],
! ['Action',"TryQuestion",
! "Try a question",
! ['Command' = "try/Question",
! 'LinkText' = __("Try"),
! 'Arguments' = ["QuestionName","QuestionSeed","RawAnswer"]]],
['Action',"EditSource",
--- 123,131 ----
'ExtraScript' = "f.ShowSolution.value = 'false';"]],
! ['Action',"ReviewQuestion",
! "Review a question",
! ['Command' = "review/Question",
! 'LinkText' = __("Review"),
! 'Arguments' = ["QuestionLabel","AttemptNumber"]]],
['Action',"EditSource",
***************
*** 205,209 ****
local subject,register,quiz,id,
student,studentname,emailstudent,adminstudent,togglesolution,
! seed,quizversion,quizinstance,history,questionhistory,
question,label,rawtable,quizcontext;
--- 203,207 ----
local subject,register,quiz,id,
student,studentname,emailstudent,adminstudent,togglesolution,
! seed,quizversion,quizinstance,history,labeltable,
question,label,rawtable,quizcontext;
***************
*** 260,276 ****
rawtable := table([]);
! questionhistory := eval(history['QuestionHistory']);
for question in quizversion['Questions'] do
label := question['Label'];
rawtable[cat("RawAnswer",label)] :=
! eval(questionhistory[label])['LastRawAnswer'];
od;
- quizinstance :=
- eval(quizversion['MakeInstance',
- eval(rawtable),
- eval(history),
- true]);
-
if p["ShowSolution"] = "true" then
quizcontext := `aim/review/Quiz/Context/Sol`;
--- 258,268 ----
rawtable := table([]);
! labeltable := eval(history['LabelTable']);
for question in quizversion['Questions'] do
label := question['Label'];
rawtable[cat("RawAnswer",label)] :=
! eval(labeltable[label])['LastRawAnswer'];
od;
if p["ShowSolution"] = "true" then
quizcontext := `aim/review/Quiz/Context/Sol`;
***************
*** 280,283 ****
--- 272,281 ----
togglesolution := page['ActionLink',"ShowSolution"];
fi;
+
+ quizinstance :=
+ eval(quizversion['MakeInstance',
+ eval(rawtable),
+ eval(history),
+ eval(quizcontext)]);
quizinstance['SetBody',quizcontext];
|
|
From: <nps...@us...> - 2003-07-10 20:10:08
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/try
In directory sc8-pr-cvs1:/tmp/cvs-serv8131/WEB-INF/maple/aim/try
Modified Files:
Tag: develop_2_1
Question.mpl Quiz.mpl
Log Message:
Many changes, mostly to implement multipart questions
Index: Question.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/try/Question.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Question.mpl 5 May 2003 03:25:46 -0000 1.2
--- Question.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 20,23 ****
--- 20,24 ----
qdc['StudentIsTeacher'] := true:
qdc['QuizReviewMode'] := false:
+ qdc['QuestionReviewMode'] := false:
qdc['QuizTryMode'] := false:
qdc['QuestionTryMode'] := true:
***************
*** 42,48 ****
qdc['ShowPrevious'] := true:
qdc['ShowFeedback'] := true:
- qdc['ShowFeedbackMC'] := true:
qdc['ShowMark'] := true:
- qdc['ShowMarkMC'] := true:
qdc['ShowRightAnswer'] := true:
qdc['ShowSolution'] := true:
--- 43,47 ----
***************
*** 67,77 ****
['Parameter',"QuestionName" = 'required',""],
['Parameter',"SourceFile" = "",""],
['Parameter',"QuestionSeed"::integer = 0,""],
! ['Parameter',"RawAnswer" = ""],
!
! ['Parameter',"Action"::{"Mark","NewVersion"} = "Mark"],
##################################################
--- 66,81 ----
['Parameter',"QuestionName" = 'required',""],
+ ['Parameter',"QuestionLabel" = "",""],
+
['Parameter',"SourceFile" = "",""],
['Parameter',"QuestionSeed"::integer = 0,""],
! ['Parameter',
! "Action"::{"Mark",
! "TryQuestion",
! "NewVersion",
! "TryRightAnswer"} =
! "TryRightAnswer"],
##################################################
***************
*** 121,126 ****
["tr",
[["td","width" = "16%"],`HTML/CloseButton`],
! [["td","width" = "16%"],[["a", "href" = "#bottom"],__("Bottom")],
! [["td","width" = "16%"],{"editsource"}]]]],
[["hr", "noshade"]],
__("Seed: "),
--- 125,132 ----
["tr",
[["td","width" = "16%"],`HTML/CloseButton`],
! [["td","width" = "16%"],[["a", "href" = "#bottom"],__("Bottom")]],
! [["td","width" = "16%"],{"editsource"}],
! [["td","width" = "16%"],{["Mark"]}],
! [["td","width" = "16%"],{["NewVersion"]}]]],
[["hr", "noshade"]],
__("Seed: "),
***************
*** 145,150 ****
question,qname,title,shorttitle,
dir,fullqfile,vrsion,instance,seed,
! show,rawans,editsource,err,fulldir,attempt,
! rightans,numrows,numcols,i,j,cell;
global AimCache;
--- 151,156 ----
question,qname,title,shorttitle,
dir,fullqfile,vrsion,instance,seed,
! show,rawtable,rawans,editsource,err,fulldir,
! qlist,q,userightans;
global AimCache;
***************
*** 179,183 ****
qname := p["QuestionName"];
-
editsource := NULL;
--- 185,188 ----
***************
*** 185,189 ****
editsource :=
sprintf(
! "<input type=hidden name=\"SourceFile\" value=%a>\n%s\n",
p["SourceFile"],
page['ActionLink',"EditSource"]);
--- 190,194 ----
editsource :=
sprintf(
! "<input type=hidden name='SourceFile' value='%s'/>\n%s\n",
p["SourceFile"],
page['ActionLink',"EditSource"]);
***************
*** 200,206 ****
"<font color='red'>",
sprintf(__("Cannot load question file: %s"),fullqfile),
! "</font>\n<br>\n",
`HTML/Escape`(err),
! "<br>\n",
page['ActionLink',"Mark",[],__("Retry")]);
page['FillTemplate',"editsource" = editsource,"show" = err];
--- 205,211 ----
"<font color='red'>",
sprintf(__("Cannot load question file: %s"),fullqfile),
! "</font>\n<br/>\n",
`HTML/Escape`(err),
! "<br/>\n",
page['ActionLink',"Mark",[],__("Retry")]);
page['FillTemplate',"editsource" = editsource,"show" = err];
***************
*** 213,221 ****
"<font color='red'>",
__("Malformed question"),
! "</font><br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br><pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre><br>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
--- 218,226 ----
"<font color='red'>",
__("Malformed question"),
! "</font><br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br/><pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre><br/>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
***************
*** 231,235 ****
editsource :=
sprintf(
! "<input type=hidden name=\"SourceFile\" value=%a>\n%s\n",
p["SourceFile"],
page['ActionLink',"EditSource"]);
--- 236,240 ----
editsource :=
sprintf(
! "<input type=hidden name='SourceFile' value='%s'>\n%s\n",
p["SourceFile"],
page['ActionLink',"EditSource"]);
***************
*** 248,260 ****
"<font color='red'>",
__("Error in MakeVersion:"),
! "</font><br>\n",
`HTML/Escape`(err),
! "<br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br>\n",
__("Question:"),
! "<br>\n<pre>\n",
`HTML/Escape`(`Class/ToString`(question,20,80))),
! "</pre><br>\n";
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
--- 253,265 ----
"<font color='red'>",
__("Error in MakeVersion:"),
! "</font><br/>\n",
`HTML/Escape`(err),
! "<br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br/>\n",
__("Question:"),
! "<br/>\n<pre>\n",
`HTML/Escape`(`Class/ToString`(question,20,80))),
! "</pre><br/>\n";
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
***************
*** 266,274 ****
"<font color='red'>",
__("Malformed question version:"),
! "</font><br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br><pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre><br>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
--- 271,279 ----
"<font color='red'>",
__("Malformed question version:"),
! "</font><br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br/><pre>\n",
`HTML/Escape`(sprintf("%a",eval(question))),
! "\n</pre><br/>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
***************
*** 279,318 ****
"<font color='red'>",
__("Question Initialization Failed:"),
! "</font><br>\n",
vrsion['Preamble'],
! "\n<br><pre>\n");
page['FillTemplate',"editsource" = editsource,"show" = err,"title" = qname];
RETURN();
! else
!
! rawans := p["RawAnswer"];
! if p["Action"] = "NewVersion" or rawans = "" then
! if type(question,`aim/TextQuestion`) then
! rawans := `aim/EntryHint`(vrsion['RightAnswer']);
! elif type(question,`aim/MatrixQuestion`) then
! rawans := "";
! rightans := vrsion['RightAnswer'];
! numrows := vrsion['NumRows'];
! numcols := vrsion['NumCols'];
!
! for i to numrows do
! for j to numcols do
! cell := traperror(`aim/EntryHint`(rightans[i,j]));
! if cell = lasterror then cell := ""; fi;
! rawans := rawans,cell;
! if j < numcols then rawans := rawans,"|"; fi;
! od;
! if i < numrows then rawans := rawans,"\n"; fi;
! od;
! rawans := cat(rawans);
! elif type(question,`aim/MCQuestion`) then
! rawans := vrsion['RightLabel'];
! elif type(question,`aim/MRQuestion`) then
! rawans := sprintf("%a",vrsion['RightLabels']);
! else
! rawans := "";
! fi;
! fi;
# if `Util/RemoveWhiteSpace`(vrsion['Note']) <> "" then
--- 284,294 ----
"<font color='red'>",
__("Question Initialization Failed:"),
! "</font><br/>\n",
vrsion['Preamble'],
! "\n<br/><pre>\n");
page['FillTemplate',"editsource" = editsource,"show" = err,"title" = qname];
RETURN();
! else # question version constructed, seems OK
# if `Util/RemoveWhiteSpace`(vrsion['Note']) <> "" then
***************
*** 320,324 ****
# cat(
# vrsion['Postamble'],
! # "<br><b>",__("Question note:"),"</b> ",`HTML/Escape`(vrsion['Note']));
# fi;
--- 296,300 ----
# cat(
# vrsion['Postamble'],
! # "<br/><b>",__("Question note:"),"</b> ",`HTML/Escape`(vrsion['Note']));
# fi;
***************
*** 326,335 ****
cat(
vrsion['Postamble'],
! "<br>\n",
page['ActionLink',"Mark"]," ",
page['ActionLink',"NewVersion"],
! "\n<br><hr>\n");
! instance := traperror(eval(vrsion['MakeInstance',rawans]));
if instance = lasterror then
--- 302,341 ----
cat(
vrsion['Postamble'],
! "<br/>\n",
page['ActionLink',"Mark"]," ",
page['ActionLink',"NewVersion"],
! "\n<br/><hr/>\n");
! if p["QuestionLabel"] = "" then
! rawtable := eval(p);
! else
! rawtable := table([]);
! if type([vrsion],[`aim/MultiQuestion/Version`]) then
! for q in vrsion['SubQuestions'] do
! rawans :=
! p[cat("RawAnswer",p["QuestionLabel"],q['Label'])];
! if not(type([rawans],[string])) then
! rawans := "";
! fi;
! rawtable[cat("RawAnswer",q['Label'])] := rawans;
! od;
! else
! rawans :=
! p[cat("RawAnswer",p["QuestionLabel"])];
! if not(type([rawans],[string])) then
! rawans := "";
! fi;
! rawtable["RawAnswer"] := rawans;
! fi;
! fi;
!
! userightans :=
! evalb((p["Action"] = "NewVersion") or
! (p["Action"] = "TryRightAnswer"));
!
! instance :=
! traperror(eval(
! `aim/Question/MakeInstance/Recursive`(
! vrsion,rawtable,table([]),`try/Question/Context`,userightans)));
if instance = lasterror then
***************
*** 339,349 ****
"<font color='red'>",
__("Error in MakeInstance:"),
! "</font><br>\n",
`HTML/Escape`(err),
! "<br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br>\n",
__("Question version:"),
! "<br>\n<pre>\n",
`HTML/Escape`(`Class/ToString`(vrsion,20,80))),
"\n</pre>\n";
--- 345,355 ----
"<font color='red'>",
__("Error in MakeInstance:"),
! "</font><br/>\n",
`HTML/Escape`(err),
! "<br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br/>\n",
__("Question version:"),
! "<br/>\n<pre>\n",
`HTML/Escape`(`Class/ToString`(vrsion,20,80))),
"\n</pre>\n";
***************
*** 357,365 ****
"<font color='red'>",
__("Malformed question instance:"),
! "</font><br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br><pre>\n",
`HTML/Escape`(sprintf("%a",eval(instance))),
! "\n</pre><br>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
--- 363,371 ----
"<font color='red'>",
__("Malformed question instance:"),
! "</font><br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "\n<br/><pre>\n",
`HTML/Escape`(sprintf("%a",eval(instance))),
! "\n</pre><br/>\n");
page['FillTemplate',"editsource" = editsource,"show" = err];
RETURN();
***************
*** 367,372 ****
else
- attempt := eval(instance['Attempt']);
-
show :=
instance['Show',`try/Question/Context`];
--- 373,376 ----
***************
*** 377,383 ****
"<font color='red'>",
__("Error in Show: result was not a string."),
! "</font><br>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br><pre>\n",
`HTML/Escape`(sprintf("%a",eval(show))),
"\n</pre>\n");
--- 381,387 ----
"<font color='red'>",
__("Error in Show: result was not a string."),
! "</font><br/>\n",
page['ActionLink',"Mark",[],__("Retry")],
! "<br/><pre>\n",
`HTML/Escape`(sprintf("%a",eval(show))),
"\n</pre>\n");
***************
*** 388,394 ****
fi; # ENDS: if instance = lasterror then ...
- page['HiddenParameters'] :=
- page['HiddenParameters'] minus {"RawAnswer"};
-
title :=
"<center><h1>",__("AIM question trial"),"</h1></center>\n",
--- 392,395 ----
***************
*** 433,436 ****
--- 434,439 ----
shorttitle := cat(shorttitle);
page['Title'] := shorttitle;
+
+ p["QuestionLabel"] := "";
page['FillTemplate',
Index: Quiz.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/try/Quiz.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Quiz.mpl 5 May 2003 03:25:46 -0000 1.2
--- Quiz.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 20,23 ****
--- 20,24 ----
qdc['StudentIsTeacher'] := true:
qdc['QuizReviewMode'] := false:
+ qdc['QuestionReviewMode'] := false:
qdc['QuizTryMode'] := true:
qdc['QuestionTryMode'] := false:
***************
*** 75,78 ****
--- 76,83 ----
}
+ function Validate() {
+ Mark();
+ }
+
",
`aim/MRQuestion/Script`,
***************
*** 115,119 ****
"Try an individual question.",
['Command' = "try/Question",
! 'Arguments' = ["QuestionName","QuestionSeed","RawAnswer"],
'LinkText' = __("Try question")]],
--- 120,124 ----
"Try an individual question.",
['Command' = "try/Question",
! 'Arguments' = ["QuestionName","QuestionSeed","QuestionLabel"],
'LinkText' = __("Try question")]],
***************
*** 177,181 ****
proc(page::`aim/admin/Page`,p::table)
! local subject,quizname,quiz,quizversion,quizinstance,
seed,keys,question,label,cgilabel,questiontable,
rawans,rightans,numrows,numcols,i,j,cell;
--- 182,186 ----
proc(page::`aim/admin/Page`,p::table)
! local subject,quizname,quiz,quizversion,quizinstance,quizhistory,
seed,keys,question,label,cgilabel,questiontable,
rawans,rightans,numrows,numcols,i,j,cell;
***************
*** 236,240 ****
od;
! quizinstance := eval(quizversion['MakeInstance',p]);
quizinstance['SetBody',`try/Quiz/Context`];
--- 241,248 ----
od;
! quizhistory := `new/aim/Quiz/History`(quizversion);
!
! quizinstance :=
! eval(quizversion['MakeInstance',p,quizhistory,`try/Quiz/Context`]);
quizinstance['SetBody',`try/Quiz/Context`];
***************
*** 244,248 ****
`new/HTML/Tag`(["table", "width" = "100%"]);
! for question in quizversion['Questions'] do
label := question['Label'];
questiontable['AddContents',
--- 252,256 ----
`new/HTML/Tag`(["table", "width" = "100%"]);
! for question in quizversion['TopQuestions'] do
label := question['Label'];
questiontable['AddContents',
|
|
From: <nps...@us...> - 2003-07-10 20:10:08
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze
In directory sc8-pr-cvs1:/tmp/cvs-serv8131/WEB-INF/maple/aim/analyze
Modified Files:
Tag: develop_2_1
Question.mpl Quiz.mpl
Log Message:
Many changes, mostly to implement multipart questions
Index: Question.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze/Question.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Question.mpl 5 May 2003 03:25:46 -0000 1.2
--- Question.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 36,40 ****
['Parameter',"QuizName" = 'required'],
['Parameter',"QuestionName" = 'required'],
!
['Parameter',
"ValidityConstraint"::
--- 36,40 ----
['Parameter',"QuizName" = 'required'],
['Parameter',"QuestionName" = 'required'],
! ['Parameter',"PartLabel"::string = 'required'],
['Parameter',
"ValidityConstraint"::
***************
*** 217,222 ****
proc(page::`aim/admin/Page`,p::table)
! local action,subject,quizname,quiz,questionname,question,analysis,
! opts,summary,timedatestring;
global AimCache;
--- 217,222 ----
proc(page::`aim/admin/Page`,p::table)
! local action,subject,quizname,quiz,questionname,partlabel,
! question,analysis,opts,summary,timedatestring;
global AimCache;
***************
*** 227,231 ****
quizname := p["QuizName"];
! quiz := traperror(subject['GetQuiz',quizname]);
if not(type(quiz,`aim/Quiz`)) then
--- 227,232 ----
quizname := p["QuizName"];
!
! quiz := traperror(eval(subject['GetQuiz',quizname]));
if not(type(quiz,`aim/Quiz`)) then
***************
*** 237,241 ****
questionname := p["QuestionName"];
! question := traperror(quiz['GetQuestion',questionname]);
if not(type(question,`aim/Question`)) then
--- 238,243 ----
questionname := p["QuestionName"];
! partlabel := p["PartLabel"];
! question := traperror(quiz['GetQuestion',questionname,partlabel]);
if not(type(question,`aim/Question`)) then
***************
*** 249,253 ****
if p["Action"] = "AnalyzeQuestion" then
analysis :=
! traperror(eval(quiz['GetQuestionAnalysis',questionname]));
fi;
--- 251,255 ----
if p["Action"] = "AnalyzeQuestion" then
analysis :=
! traperror(eval(quiz['GetQuestionAnalysis',questionname,partlabel]));
fi;
Index: Quiz.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/analyze/Quiz.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Quiz.mpl 5 May 2003 03:25:46 -0000 1.2
--- Quiz.mpl 10 Jul 2003 20:10:04 -0000 1.2.2.1
***************
*** 62,66 ****
"",
['Command' = "analyze/Question",
! 'Arguments' = ["QuestionName"],
'LinkText' = __("Analyze")]],
--- 62,66 ----
"",
['Command' = "analyze/Question",
! 'Arguments' = ["QuestionName","PartLabel"],
'LinkText' = __("Analyze")]],
***************
*** 125,129 ****
local subject,register,ids,action,quizname,quiz,
qnames,i,istring,qname,question,analysis,entry,
! resultstable,questiontable,timedatestring,f,g;
action := p["Action"];
--- 125,130 ----
local subject,register,ids,action,quizname,quiz,
qnames,i,istring,qname,question,analysis,entry,
! resultstable,questiontable,timedatestring,f,g,
! qlist,nllist;
action := p["Action"];
***************
*** 157,161 ****
analysis['Sort',p["OrderStudentsBy"]];
! qnames := quiz['QuestionNames'];
if analysis['AnalysisTime'] = NULL then
--- 158,163 ----
analysis['Sort',p["OrderStudentsBy"]];
! qlist := quiz['Questions'];
! nllist := map(q -> [q['Name'],q['PartLabel']],qlist);
if analysis['AnalysisTime'] = NULL then
***************
*** 166,178 ****
if action = "DownloadQuiz" then
! f := (n,x) -> cat(x['MarkString',n],"\t");
g :=
! proc(entry,qnames)
sprintf("%s\t%s\t%s\t%s%s\n",
entry['StudentID'],
entry['StudentFirstName'],
entry['StudentSurname'],
! cat(op(map(f,qnames,entry))),
entry['TotalMarkString']);
end;
--- 168,180 ----
if action = "DownloadQuiz" then
! f := (n,x) -> cat(x['MarkString',op(n)],"\t");
g :=
! proc(entry,nllist)
sprintf("%s\t%s\t%s\t%s%s\n",
entry['StudentID'],
entry['StudentFirstName'],
entry['StudentSurname'],
! cat(op(map(f,nllist,entry))),
entry['TotalMarkString']);
end;
***************
*** 186,192 ****
__("First name"),"\t",
__("Surname"),"\t",
! seq(sprintf("%d\t",i),i=1..nops(qnames)),
__("Total"),"\n",
! op(map(g,analysis['Entries'],qnames)));
page['SetContentType',"text/tab-separated-values"];
--- 188,194 ----
__("First name"),"\t",
__("Surname"),"\t",
! seq(sprintf("%d\t",i),i=1..nops(nllist)),
__("Total"),"\n",
! op(map(g,analysis['Entries'],nllist)));
page['SetContentType',"text/tab-separated-values"];
***************
*** 194,200 ****
fi;
! f := (n,x) -> cat("<td>",x['MarkString',n],"</td>\n");
! g := proc(entry,qnames)
cat(
"<tr>\n<td>",
--- 196,202 ----
fi;
! f := (n,x) -> cat("<td>",x['MarkString',op(n)],"</td>\n");
! g := proc(entry,nllist)
cat(
"<tr>\n<td>",
***************
*** 208,212 ****
entry['StudentSurname'],
"</td>\n",
! op(map(f,qnames,entry)),
"<td>",entry['TotalMarkString'],"</td>\n",
"</tr>\n");
--- 210,214 ----
entry['StudentSurname'],
"</td>\n",
! op(map(f,nllist,entry)),
"<td>",entry['TotalMarkString'],"</td>\n",
"</tr>\n");
***************
*** 214,218 ****
resultstable :=
! cat(op(map(g,analysis['Entries'],qnames)));
resultstable :=
--- 216,220 ----
resultstable :=
! cat(op(map(g,analysis['Entries'],nllist)));
resultstable :=
***************
*** 223,227 ****
"<th>",__("Name"),"</th>\n",
seq(sprintf("<th><a href='#Q%d'>%d</a></th>\n",i,i),
! i=1..nops(qnames)),
"<th>",__("Total"),"</th>\n",
"</tr>",
--- 225,229 ----
"<th>",__("Name"),"</th>\n",
seq(sprintf("<th><a href='#Q%d'>%d</a></th>\n",i,i),
! i=1..nops(nllist)),
"<th>",__("Total"),"</th>\n",
"</tr>",
***************
*** 236,240 ****
["tr",
[["th","width" = "10%","noscroll"]], # question number
! [["th","width" = "45%","align"="left"],__("Question name")],
[["th","width" = "15%"]], # edit link
[["th","width" = "15%"]], # try link
--- 238,243 ----
["tr",
[["th","width" = "10%","noscroll"]], # question number
! [["th","width" = "40%","align"="left"],__("Question name")],
! [["th","width" = "5%"]], # part label
[["th","width" = "15%"]], # edit link
[["th","width" = "15%"]], # try link
***************
*** 242,257 ****
]);
! for i to nops(qnames) do
istring := sprintf("%d",i);
! qname := qnames[i];
! questiontable['AddContents',
! ["tr",
! ["td",[["a", "name" = cat("Q",istring)],istring]],
! ["td",qname],
! ["td",page['ActionLink',"EditQuestion",[qname]]],
! ["td",page['ActionLink',"TryQuestion",[qname]]],
! ["td",page['ActionLink',"AnalyzeQuestion",[qname]]]]];
! question := traperror(eval(quiz['GetQuestion',qname]));
if type(question,`aim/Question`) then
if assigned(question['Description']) and
question['Description'] <> "" then
--- 245,261 ----
]);
! for i to nops(nllist) do
istring := sprintf("%d",i);
! question := qlist[i];
if type(question,`aim/Question`) then
+ qname := question['Name'];
+ questiontable['AddContents',
+ ["tr",
+ ["td",[["a", "name" = cat("Q",istring)],istring]],
+ ["td",qname],
+ ["td",question['PartLabel']],
+ ["td",page['ActionLink',"EditQuestion",[qname]]],
+ ["td",page['ActionLink',"TryQuestion",[qname]]],
+ ["td",page['ActionLink',"AnalyzeQuestion",[qname,question['PartLabel']]]]]];
if assigned(question['Description']) and
question['Description'] <> "" then
|
|
From: <nps...@us...> - 2003-07-10 20:10:08
|
Update of /cvsroot/aimmath/AIM/doc
In directory sc8-pr-cvs1:/tmp/cvs-serv8131/doc
Modified Files:
Tag: develop_2_1
format.html todo.html
Log Message:
Many changes, mostly to implement multipart questions
Index: format.html
===================================================================
RCS file: /cvsroot/aimmath/AIM/doc/format.html,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** format.html 20 Apr 2003 23:14:41 -0000 1.1.1.1
--- format.html 10 Jul 2003 20:10:05 -0000 1.1.1.1.2.1
***************
*** 68,71 ****
--- 68,72 ----
<pre><font color='green'>
+ shift> 87453978
local> p,x
h> p := x^4 + randpoly(x, degree=3, coeffs=rand(-3..3));
***************
*** 87,90 ****
--- 88,99 ----
<br>
<ul>
+ <li>It is recommended that every question should have a
+ <tt><font color='green'>shift></font></tt> flag, whose argument is
+ a randomly chosen integer, which should be left unchanged when
+ the question is edited. The reason for this is technical: it
+ ensures that questions are robustly randomized, while minimizing
+ the damage if a question needs to be modified while a quiz is
+ running.
+ </li>
<li>The <tt><font color='green'>local></font></tt> flag says that p
and x are local variables for this question. Without this, if x had
***************
*** 94,99 ****
is processed, and the value assigned to p is removed afterwards.
AIM is reasonably good at working out which variables should be
! treated as local, but it is nonetheless good practise to tell it
explicitly.
</li>
<li>The <tt><font color='green'>h></font></tt> (hidden) flag
--- 103,113 ----
is processed, and the value assigned to p is removed afterwards.
AIM is reasonably good at working out which variables should be
! treated as local, but it is nonetheless good practice to tell it
explicitly.
+
+ We refer to variables declared in this way as
+ <em>pseudolocals</em>. As far as Maple is concerned, they are
+ actually global variables, but AIM itself sets and unsets them at
+ appropriate points to make them behave locally.
</li>
<li>The <tt><font color='green'>h></font></tt> (hidden) flag
***************
*** 113,118 ****
plain text, not LaTeX). If the <tt><font
color='green'>note></font></tt> flag is omitted, then AIM will
! construct a note recording the values of all local variables; for
! more elaborate questions, this can be awkward and inefficient.
</li>
<li>
--- 127,132 ----
plain text, not LaTeX). If the <tt><font
color='green'>note></font></tt> flag is omitted, then AIM will
! construct a note recording the values of all pseudolocal variables;
! for more elaborate questions, this can be awkward and inefficient.
</li>
<li>
***************
*** 131,135 ****
\[ @Int(p,x)@ \]
</font></pre>
! (using the neutral integration operator Int).
</li>
<li>
--- 145,154 ----
\[ @Int(p,x)@ \]
</font></pre>
! (using the neutral integration operator Int). Expressions in this
! context can only refer to global and pseudolocal variables, not to
! local variables or parameters. This is not in practice a
! restriction for <tt><font color='green'>t></font></tt> flags, but
! it will be a restriction in various other contexts discussed later
! where the same syntax is used.
</li>
<li>
***************
*** 165,168 ****
--- 184,188 ----
<pre><font color='green'>
+ shift> 8748273605
t> The following figure
p> plots[display](plottools[torus]([0,0,0],1,2), scaling=constrained);
***************
*** 210,218 ****
<pre><font color='green'>
# A multiple-response question.
t> Consider the following matrix:
p> A = matrix(2, 2,
[cos(theta),-sin(theta),
sin(theta), cos(theta)]);
! t> Which of the following properties does this matrix posess?
c> MR("symmetric", "anti-symmetric", "orthonormal", "singular", "non-singular")
a> {"orthonormal", "non-singular"}
--- 230,239 ----
<pre><font color='green'>
# A multiple-response question.
+ shift> 9066875006
t> Consider the following matrix:
p> A = matrix(2, 2,
[cos(theta),-sin(theta),
sin(theta), cos(theta)]);
! t> Which of the following properties does this matrix possess?
c> MR("symmetric", "anti-symmetric", "orthonormal", "singular", "non-singular")
a> {"orthonormal", "non-singular"}
***************
*** 227,230 ****
--- 248,341 ----
worse, and 1 for a perfectly correct answer.
+ <h3>A question with several parts</h3>
+
+ A question may be divided into subquestions (which may in turn be
+ further subdivided). This is only recommended when the subquestions
+ are linked, so that the mark for one part might depend on the
+ answer given to another part. Here is an example:
+
+ <pre><font color='green'>
+ name> primes
+ local> lowerbound,ans1
+ shift> 7645848653
+ t> Recall that Euclid proved that their are infinitely many primes
+ h> lowerbound := rnd(20..40);
+ note> sprintf("p2>p1>%a",lowerbound)
+ sq>
+ t> Find a prime $p_1$ such that $p_1 > @lowerbound@$
+ c> posint
+ av> p1
+ ap> $p_1 =$
+ s> [proc(ans)
+ if isprime(ans) then
+ if ans > lowerbound then
+ RETURN(1);
+ else
+ `aim/t`("Your answer is prime, but is too small.");
+ `aim/SetAnswerNote`("too small");
+ fi;
+ else
+ ans1 := ans;
+ `aim/t`("Your answer is composite: $@ans1@ = @ifactor(ans1)@$");
+ `aim/SetAnswerNote`("composite");
+ fi;
+ RETURN(0);
+ end,
+ nextprime(lowerbound)
+ ]
+ esq>
+ sq>
+ t> Find a another prime $p_2$ such that $p_2 > p_1$
+ c> posint
+ av> p2
+ ap> $p_2 =$
+ s> [proc(ans)
+ if isprime(ans) then
+ if ans > p1 then
+ RETURN(1);
+ else
+ `aim/t`("Your answer is prime, but is too small.");
+ `aim/SetAnswerNote`("too small");
+ fi;
+ else
+ ans1 := ans;
+ `aim/t`("Your answer is composite: $@ans1@ = @ifactor(ans1)@$");
+ `aim/SetAnswerNote`("composite");
+ fi;
+ RETURN(0);
+ end,
+ nextprime(nextprime(lowerbound))
+ ]
+ esq>
+ end>
+ </font></pre>
+
+ The subquestions are enclosed between <tt><font
+ color='green'>sq></font></tt> and <tt><font
+ color='green'>esq></font></tt>. The <tt><font
+ color='green'>c></font></tt> flags specify that the answers should
+ have the maple type <tt><font color='green'>posint</font></tt>, in
+ other words they must be positive integers. If not, then the answers
+ are rejected as being invalid, without any penalty. The line
+ <tt><font color='green'>av> p1</font></tt> specifies that at an
+ appropriate point, the global variable <tt><font
+ color='green'>p1</font></tt> should be set equal to the student's
+ first answer; this allows the second marking procedure to refer to
+ <tt><font color='green'>p1</font></tt> when it checks that
+ p<sub>2</sub> > p<sub>1</sub>. (This assignment is automatically
+ removed when it is no longer needed.) The <tt><font
+ color='green'>ap></font></tt> flag specifies the string used to prompt
+ the student for an answer. The
+ <tt><font color='green'>`aim/t`</font></tt> function works like a
+ <tt><font color='green'>t></font></tt> flag; see
+ <a href='#hide'>below</a> for more details. One subtlety is that
+ <tt><font color='green'>@...@</font></tt> sequences in the argument
+ to <tt><font color='green'>`aim/t`</font></tt> only work with
+ global or pseudolocal variables, hence the need to copy the parameter
+ <tt><font color='green'>ans</font></tt> to the pseudolocal variable
+ <tt><font color='green'>ans1</font></tt>. Note also the use of the
+ <tt><font color='green'>`aim/SetAnswerNote`</font></tt> function to
+ record a short note about the general nature of the answer; this is
+ used by AIM's facilities for analyzing results.
<h2>Detailed description of flags</h2>
***************
*** 240,244 ****
<tr><td>ap></td>
<td><a href='#prompt'>prompt></a></td>
! <td>Specify the prompt for the student's answer</td>
</tr>
<tr><td>c></td>
--- 351,361 ----
<tr><td>ap></td>
<td><a href='#prompt'>prompt></a></td>
! <td>Specify the prompt for the student's answer (in LaTeX)</td>
! </tr>
! <tr><td>pp></td>
! <td><a href='#prompt'>postprompt></a></td>
! <td>Specify a string to go directly after the box in which the
! student's answer is entered.
! </td>
</tr>
<tr><td>c></td>
***************
*** 311,314 ****
--- 428,439 ----
<td>Specify the value of the question</td>
</tr>
+ <tr><td>sq></td>
+ <td><a href='#subquestion'>subquestion></a></td>
+ <td>Declare the start of a subquestion</td>
+ </tr>
+ <tr><td>esq></td>
+ <td><a href='#endsubquestion'>endsubquestion></a></td>
+ <td>Declare the end of a subquestion</td>
+ </tr>
<tr><td><<i>string</i>></td>
<td><a href="#<string>"><<i>string</i>></a></td>
***************
*** 337,340 ****
--- 462,479 ----
</font></pre>
+ <a name='postprompt'><h3>postprompt>/pp></h3></a>
+
+ For example, if the answer is supposed to be a length measured in
+ meters, then one could have a line
+ <pre><font color='green'>
+ postprompt> meters
+ </font></pre>
+
+ <a name='answervariable'><h3>answervariable>/av></h3></a>
+
+ The attached text should be the name of a global variable in which to
+ record the students answer, so that other parts of the same question
+ can refer to it.
+
<a name='mapletype'><h3>mapletype>/c></h3></a>
***************
*** 455,459 ****
functions that can be used in these flags:
<ul>
! <li>The function `aim/t` mimics the behaviour of the <tt><font
color='green'>t></font></tt> flag. The advantage is that it can be
made conditional, for example
--- 594,598 ----
functions that can be used in these flags:
<ul>
! <li>The function `aim/t` mimics the behavior of the <tt><font
color='green'>t></font></tt> flag. The advantage is that it can be
made conditional, for example
***************
*** 477,481 ****
</font></pre>
</li>
! <li>Analogously, the function `aim/p` mimics the behaviour of the
<tt><font color='green'>p></font></tt> flag.
</li>
--- 616,620 ----
</font></pre>
</li>
! <li>Analogously, the function `aim/p` mimics the behavior of the
<tt><font color='green'>p></font></tt> flag.
</li>
***************
*** 628,635 ****
initially had no assigned value, then its unassigned state is also
restored.) This kind of scoping is handled by AIM itself; as far as
! Maple is concerned, the variables in question are global. Some
! technicalities are discussed in the documentation of the <a
! href='Local.html'>Local package</a>, but they can be ignored by most
! users.
<br><br>
Example:
--- 767,774 ----
initially had no assigned value, then its unassigned state is also
restored.) This kind of scoping is handled by AIM itself; as far as
! Maple is concerned, the variables in question are global, so we refer
! to them as <em>pseudolocals</em>. Some technicalities are discussed
! in the documentation of the <a href='Local.html'>Local package</a>,
! but they can be ignored by most users.
<br><br>
Example:
***************
*** 836,845 ****
color='green'>s></font></tt> flag, then the maximum mark is ignored
except that an error will be generated if the checking procedure
! returns a mark that is too large.<h3><a name="<string>"><<i>string</i>>/<<i>string</i>></a></h3>
- This family of flags (one flag for each value of <b><i>string</i></b>) are used
- to define named strings called <i>question parameters</i>. The attached text is substituted for every occurrence
- of the target string (which is exactly the same string as the flag, i.e. <<i><b>string</b></i>>) in the text attached to
- flags that follow this line within the same question.
<p>Example:</p>
<pre><font color="green">#######################
--- 975,1000 ----
color='green'>s></font></tt> flag, then the maximum mark is ignored
except that an error will be generated if the checking procedure
! returns a mark that is too large.
!
! <a name='#subquestion'><h3>subquestion>/sq></h3></a><br>
! <a name='#endsubquestion'><h3>endsubquestion>/esq></h3></a>
!
! These flags should occur in matched pairs to declare subquestions of a
! multi-part question. (For historical reasons,
! <tt><font color='green'>end></font></tt> is allowed as an alternative
! to <tt><font color='green'>esq></font></tt> or
! <tt><font color='green'>endsubquestion></font></tt>.) It is
! recommended that you put all initialization of local variables at the
! beginning, before any subquestions.
!
! <h3><a name="<string>"><<i>string</i>>/<<i>string</i>></a></h3>
!
! This family of flags (one flag for each value of <b><i>string</i></b>)
! are used to define named strings called <i>question
! parameters</i>. The attached text is substituted for every occurrence
! of the target string (which is exactly the same string as the
! flag, i.e. <<i><b>string</b></i>>) in the text attached to flags
! that follow this line within the same question.
<p>Example:</p>
<pre><font color="green">#######################
***************
*** 859,869 ****
# end of foo.aim
######################</font></pre>
! <p>In the first two non-commented lines this example we define two question parameters, <font color="green" face="Courier New" size="2"><Range></font>
! and<font color="green"> <font face="Courier New" size="2" color="green"><Difficulty>.</font></font><font face="Courier New" size="2">
! </font>Every occurrence of <font color="green" face="Courier New" size="2"><Range></font>
! in the subsequent lines is replaced by the string "<font face="Courier New" size="2" color="green">0..9</font>"
! and every occurrence of <font face="Courier New" size="2" color="green"><Difficulty></font>
! in the following lines is replaced by "<font face="Courier New" size="2" color="green">easy</font>".
! After the substitution the question would read:</p>
<pre><font color="green">k> Addition,easy
l> a,b
--- 1014,1032 ----
# end of foo.aim
######################</font></pre>
!
! <p>In the first two non-commented lines this example we define two
! question parameters, <font color="green" face="Courier New"
! size="2"><Range></font> and<font color="green"> <font
! face="Courier New" size="2"
! color="green"><Difficulty>.</font></font><font face="Courier
! New" size="2"> </font>Every occurrence of <font color="green"
! face="Courier New" size="2"><Range></font> in the subsequent
! lines is replaced by the string "<font face="Courier New"
! size="2" color="green">0..9</font>" and every occurrence of <font
! face="Courier New" size="2" color="green"><Difficulty></font> in
! the following lines is replaced by "<font face="Courier New"
! size="2" color="green">easy</font>". After the substitution the
! question would read:</p>
!
<pre><font color="green">k> Addition,easy
l> a,b
***************
*** 874,886 ****
end>
</font></pre>
! <p>Only simple textual substitution is performed - no evaluation of the text
! attached to the flag is performed prior to the substitution. The substitutions
! will only take place on lines that come after the line on which the parameter is
! defined. The targets of the substitutions can occur anywhere in the text
! attached to any flag (but not in a flag itself). In particular, parameter definitions can contain the targets of
! other parameters, but care should be taken to avoid circular substitutions. The
! only exception to this is the include> flag, which cannot contain any
! question parameter targets since all file inclusions are performed before any
! parameter substitution takes place. <br>
<br>
The <b><i>string</i></b>
--- 1037,1053 ----
end>
</font></pre>
!
! <p>Only simple textual substitution is performed - no evaluation of
! the text attached to the flag is performed prior to the
! substitution. The substitutions will only take place on lines that
! come after the line on which the parameter is defined. The
! targets of the substitutions can occur anywhere in the text attached
! to any flag (but not in a flag itself). In particular, parameter
! definitions can contain the targets of other parameters, but care
! should be taken to avoid circular substitutions. The only exception to
! this is the include> flag, which cannot contain any question
! parameter targets since all file inclusions are performed before any
! parameter substitution takes place.
! <br>
<br>
The <b><i>string</i></b>
***************
*** 888,906 ****
contain the character ">" (as that signifies the end of the
flag). Thus, <font face="Courier New" size="2" color="green"><>,</font>
! <font face="Courier New" size="2" color="green"><1>,</font> <font face="Courier New" size="2" color="green"><a>,
<Range></font>,
! and <font face="Courier New" size="2" color="green"><Newton's method number
! of iterations></font> are all valid parameter flags. All occurrences of
! potential targets of the form <<i>string</i>> in the question source code
! for which there is no corresponding parameter defined are left unchanged, so the
! parameter substitution mechanism should have no effect on the ordinary use of
! < and > in a question. The question is compiled after all of the textual
! substitutions of parameters have been made, so no parameter information is stored in the compiled version of
! the question. </p>
! <p>Only the first definition of a particular parameter is used, all subsequent
! definitions of the same parameter within the same question are ignored. This feature is useful for
! making parameterized questions as follows:</p>
--- 1055,1077 ----
contain the character ">" (as that signifies the end of the
flag). Thus, <font face="Courier New" size="2" color="green"><>,</font>
! <font face="Courier New" size="2" color="green"><1>,</font>
! <font face="Courier New" size="2" color="green"><a>,
<Range></font>,
! and <font face="Courier New" size="2" color="green"><Newton's
! method number of iterations></font> are all valid parameter
! flags. All occurrences of potential targets of the form
! <<i>string</i>> in the question source code for which there is
! no corresponding parameter defined are left unchanged, so the
! parameter substitution mechanism should have no effect on the ordinary
! use of < and > in a question. The question is compiled after all
! of the textual substitutions of parameters have been made, so no
! parameter information is stored in the compiled version of the
! question. </p>
! <p>Only the first definition of a particular parameter is used, all
! subsequent definitions of the same parameter within the same question
! are ignored. This feature is useful for making parameterized
! questions as follows:</p>
Index: todo.html
===================================================================
RCS file: /cvsroot/aimmath/AIM/doc/todo.html,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** todo.html 20 Apr 2003 23:14:56 -0000 1.1.1.1
--- todo.html 10 Jul 2003 20:10:05 -0000 1.1.1.1.2.1
***************
*** 16,21 ****
<ol>
! <li>Editing of login pages should be moved out of the zone admin
! page to a separate page
</li>
<li>Students should first select a subject, and only then be asked
--- 16,36 ----
<ol>
! <li>Customized parsing procedures eg for permutations, subsets of R, finite
! Abelian groups</li>
! <li>Separate parsing from validation</li>
! <li>Richtext editor option for home pages etc</li>
! <li>Facility for students to request help, with automatic
! recording of the context.
! </li>
! <li>Update error handling to use try/catch/finally</li>
! <li>File locking</li>
! <li>Check whether AIM would load much faster if everything was in
! a single .m file.
! </li>
! <li>Better support for standard question types</li>
! <li>Zone should contain default values for subject options
! (including visibility of newly created subjects).
! Subject should contain default values for quiz options
! (including visibility of newly created quizzes).
</li>
<li>Students should first select a subject, and only then be asked
***************
*** 51,58 ****
<li>Compilation of question files in .mpl or .xml format</li>
<li>Arrange for the server to run as user 'aim', not 'nobody' or 'root'</li>
- <li>Check package dependency statements</li>
- <li>If the student revisits a quiz that they have already tried, we should
- have MarkRequested = true iff that was true at the last visit.</li>
- <li>save times of quiz attempts</li>
<li>Subject-specific and quiz-specific initialization files.</li>
<li>Random package:
--- 66,69 ----
***************
*** 65,75 ****
<li>Check systematically for parsing of strings supplied as CGI parameters,
and ensure safety.</li>
! <li>Internationalize and localize.</li>
! <li>Hints and subquestions</li>
<li>Write HTML help for teachers and include links from admin pages</li>
<li>Multiple choice questions with answers selected from an image map</li>
- <li>Customized parsing procedures eg for permutations, subsets of R, finite
- Abelian groups</li>
- <li>Separate parsing from validation</li>
<li>'Lightweight' question versions with no images or solutions
(used for re-marking, for example)
--- 76,82 ----
<li>Check systematically for parsing of strings supplied as CGI parameters,
and ensure safety.</li>
! <li>Hints</li>
<li>Write HTML help for teachers and include links from admin pages</li>
<li>Multiple choice questions with answers selected from an image map</li>
<li>'Lightweight' question versions with no images or solutions
(used for re-marking, for example)
***************
*** 81,94 ****
<li>In Maple 6: external function calls for file operations and TtH
conversion</li>
- <li>Quiz navigation bar:
- <ol>
- <li>no marks link if marks are not to be reported</li>
- <li>validate, mark, submit buttons?</li>
- <li>return to right position in page</li>
- </ol>
- </li>
- <li>Internationalize collation, conventions about names etc</li>
<li>Date package: better handling of time zones, parallel to Java. Work out
! wht happens while the clocks are changing.</li>
<li>Check treatment of special characters (comma,apostrophe,..) in student
names,id's,passwords, especially when using plain text files</li>
--- 88,93 ----
<li>In Maple 6: external function calls for file operations and TtH
conversion</li>
<li>Date package: better handling of time zones, parallel to Java. Work out
! what happens while the clocks are changing.</li>
<li>Check treatment of special characters (comma,apostrophe,..) in student
names,id's,passwords, especially when using plain text files</li>
***************
*** 113,125 ****
records from the subject review page.
</li>
! <li>Up/download of source directories as zip files
! </li>
! <li>A more systematic way of making toolbars</li>
! </li>
<li>A framework for links to lecture notes.</li>
<li>Hooks for site-specific facilities eg access to central
! records.</li>
! <li>In the Java code, set timouts for TtH and Maple.
! </li>
</ol>
</body>
--- 112,124 ----
records from the subject review page.
</li>
! <li>Up/download of source directories as zip files</li>
<li>A framework for links to lecture notes.</li>
<li>Hooks for site-specific facilities eg access to central
! records.</li>
! <li>Internationalize collation, conventions about names etc</li>
! <li>In the Java code, set timouts for TtH and Maple.</li>
! <li>Check package dependency statements</li>
! <li>save times of quiz attempts</li>
! <li>A more systematic way of making toolbars</li>
</ol>
</body>
|
|
From: <gus...@us...> - 2003-07-10 07:05:18
|
Update of /cvsroot/aimmath/CVSROOT In directory sc8-pr-cvs1:/tmp/cvs-serv26007 Modified Files: cvswrappers Log Message: .exe, .zip, .gif are now binary Index: cvswrappers =================================================================== RCS file: /cvsroot/aimmath/CVSROOT/cvswrappers,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cvswrappers 17 Jan 2002 22:11:06 -0000 1.1 --- cvswrappers 10 Jul 2003 07:05:14 -0000 1.2 *************** *** 11,23 **** # Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) # ! # wildcard [option value][option value]... # # where option is one of ! # -f from cvs filter value: path to filter ! # -t to cvs filter value: path to filter ! # -m update methodology value: MERGE or COPY ! # -k expansion mode value: b, o, kkv, &c # # and value is a single-quote delimited value. # For example: ! #*.gif -k 'b' --- 11,25 ---- # Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) # ! # wildcard [option value][option value]... # # where option is one of ! # -f from cvs filter value: path to filter ! # -t to cvs filter value: path to filter ! # -m update methodology value: MERGE or COPY ! # -k expansion mode value: b, o, kkv, &c # # and value is a single-quote delimited value. # For example: ! *.gif -k 'b' ! *.zip -k 'b' ! *.exe -k 'b' |
|
From: <gr...@us...> - 2003-07-09 18:05:18
|
Update of /cvsroot/aimmath/AIM/examples/Trig
In directory sc8-pr-cvs1:/tmp/cvs-serv805
Added Files:
Tag: develop_2_1
advancedlevel.aim
Log Message:
Missed this one before ... a sample quiz that includes example questions - GG
--- NEW FILE: advancedlevel.aim ---
# @(#)$Id: advancedlevel.aim,v 1.1.2.1 2003/07/09 18:05:15 gregg0 Exp $
# Copyright (C) 2003 Greg Gamble
# Distributed without warranty under the GPL - see README for details
i> EXAMPLES/Trig/trig_eqn_cosxr.aim,
EXAMPLES/Trig/trig_eqn_sinnxr.aim,
EXAMPLES/Trig/trig_eqn_cosnx-1.aim,
EXAMPLES/Trig/trig_eqn_tansqxn.aim,
EXAMPLES/Trig/trig_eqn_rewsincos.aim,
EXAMPLES/Trig/trig_eqn_sinnx-r.aim,
EXAMPLES/Trig/trig_eqn_dblang1.aim,
EXAMPLES/Trig/trig_eqn_tan2x.aim,
EXAMPLES/Trig/trig_eqn_dblang2.aim,
EXAMPLES/Trig/trig_eqn_dblang3.aim,
EXAMPLES/Trig/trig_eqn_quadtan.aim
|
|
From: <gr...@us...> - 2003-07-09 17:01:40
|
Update of /cvsroot/aimmath/AIM/images
In directory sc8-pr-cvs1:/tmp/cvs-serv24015
Added Files:
Tag: develop_2_1
equi.gif isos.gif
Log Message:
Added two of Neil's .gif images that are used in Trig quiz examples. - GG
--- NEW FILE: equi.gif ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: isos.gif ---
(This appears to be a binary file; contents omitted.)
|
|
From: <gr...@us...> - 2003-07-09 16:45:23
|
Update of /cvsroot/aimmath/AIM/examples/Trig In directory sc8-pr-cvs1:/tmp/cvs-serv22214/Trig Log Message: Directory /cvsroot/aimmath/AIM/examples/Trig added to the repository |
|
From: <gr...@us...> - 2003-07-09 16:44:22
|
Update of /cvsroot/aimmath/AIM/examples In directory sc8-pr-cvs1:/tmp/cvs-serv22065/examples Log Message: Directory /cvsroot/aimmath/AIM/examples added to the repository |
|
From: <gr...@us...> - 2003-07-09 10:15:31
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim
In directory sc8-pr-cvs1:/tmp/cvs-serv1089
Modified Files:
Tag: develop_2_1
Compile.mpl Util.mpl
Log Message:
Now allows EXAMPLES to be used as an abbreviation for the ROOT/examples
directory (soon to be created), for included files. - GG
Index: Compile.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Compile.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Compile.mpl 5 May 2003 03:25:46 -0000 1.2
--- Compile.mpl 9 Jul 2003 10:15:28 -0000 1.2.2.1
***************
*** 114,117 ****
--- 114,119 ----
# make the file list from the comma separated filenames
filelist:=map(`Util/StripEndSpaces`,[`Util/CommaSplit`(lines[n][2])]);
+ # expand EXAMPLES to path of examples directory
+ filelist:=map(`aim/ExpandExamplesPath`, filelist);
# ignore blank filenames
filelist:=remove(x->x="",filelist);
Index: Util.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/Util.mpl,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -d -r1.2 -r1.2.2.1
*** Util.mpl 5 May 2003 03:25:46 -0000 1.2
--- Util.mpl 9 Jul 2003 10:15:28 -0000 1.2.2.1
***************
*** 363,366 ****
--- 363,381 ----
######################################################################
+ `Package/Assign`(
+ `aim/ExpandExamplesPath`::string,
+ "If present, expands @EXAMPLES/@ at the head of path string @path@
+ to the absolute path of the @examples@ directory on the system,
+ or otherwise returns @path@ untouched.",
+ proc(path::string)
+ local p;
+ p := StringTools:-RegSub("^EXAMPLES/(.*)", path,
+ cat(DefaultZone['WebDir'], "/examples/\\1"));
+ return `if`(type(p, string), p, path);
+ end
+ ):
+
+ ######################################################################
+
EndPackage():
|
|
From: <gr...@us...> - 2003-07-09 10:05:22
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv325
Modified Files:
Tag: develop_2_1
PackageList
Log Message:
Two new package files have been added (aim/Trig.mpl, aim/Util1.mpl) - GG
Index: PackageList
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/PackageList,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** PackageList 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- PackageList 9 Jul 2003 10:05:19 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,11 ----
+ # @(#)$Id$
+
+ # Copyright (C) 2003 Neil Strickland
+ # Distributed without warranty under the GPL - see README for details
+
+ # This file lists the package names of AIM without the .mpl extension
+ # Comments (starting with a #, possibly preceded by whitespace) and
+ # whitespace at the end of the line is ignored.
+
OS
Util
***************
*** 28,31 ****
--- 37,42 ----
aim/MRQuestion
aim/MatrixQuestion
+ aim/Trig
+ aim/Util1
aim/Quiz
aim/QuizCache
|
|
From: <gr...@us...> - 2003-07-09 09:59:51
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim
In directory sc8-pr-cvs1:/tmp/cvs-serv31913/aim
Added Files:
Tag: develop_2_1
Trig.mpl Util1.mpl
Log Message:
Added two new package files mainly for use with trigonometry problems. - GG
--- NEW FILE: Trig.mpl ---
# @(#)$Id: Trig.mpl,v 1.1.2.1 2003/07/09 09:59:48 gregg0 Exp $
# Copyright (C) 2003 Greg Gamble
# Distributed without warranty under the GPL - see README for details
read("Package.mpl"):
Package("aim/Trig","
This package provides some useful functions for use in
trigonometry questions. Look in the ROOT/examples/Trig
directory for some example quiz files demonstrating the
functions. The README in that directory has more details.
"
):
######################################################################
`Package/Assign`(
`type/aim/Trig/Problem`::boolean,
"A trigonometry problem is defined to be a list of form
@[eq, interval, solns]@ where
<dl>
<dt>@eq@</dt>
<dd>is an equation (the trigonometric equation
the students are asked to solve),</dd>
<dt>@interval@</dt>
<dd>is a Maple range, e.g. @-Pi/2 .. Pi/2@, that defines the
interval over which @eq@ is to be solved, and</dd>
<dt>@solns@</dt>
<dd>is the list of (correct) solutions of @eq@ in @interval@
(the case for #`aim/Trig/Test`#)
or, in order, the smallest, largest and number of solutions
of @eq@ in @interval@
(the case for #`aim/TrigSLN/Test`#)</dd>
</dl>",
proc(e)
evalb(type(e, list) and
nops(e) = 3 and
type(e[1], equation) and
type(e[2], range) and
type(e[3], list) and
{op(remove(type, e[3], realcons))} subset {EMPTYCELL});
end
):
######################################################################
`Package/Assign`(
`aim/Trig/Test`::[numeric, string, string, list, list],
"This function assumes that the student was asked to do a
trigonometry question @Q@ where the expected answer is all the solutions
of an equation on a certain interval. The first argument @a@ might be an
#`aim/Question/Attempt`# or #`aim/Question/ShortAttempt`# object
(in which case we put @ans := a['Answer']@) or it might just be
the student's answer (in which case we put @ans = a@).
In any case, the function checks whether @ans@ is correct.
If not, it checks that @ans@ contains the right number of solutions
and awards a mark according to the number of correct solutions,
essentially @(ncorrect - nwrong)/nrightans@, where @ncorrect@ and
@nwrong@ are the numbers of correct and wrong solutions in @ans@,
respectively, and @nrightans@ is the number of solutions in the
right answer. A solution is deemed correct if it is accurate to
2 decimal places. Solutions that are inaccurate but within 5%
also score, but at the rate of 80% that of a fully correct
answer. Wrong or inaccurate answers generate feedback, identifying
which of the solutions are incorrect.
The function returns a list of the form
@[mark, feedback, note, [wrong], [partright]]@. If
@a@ is an #`aim/Question/Attempt`# then the function also sets
@a['RawMark']@ to @mark@, appends @feedback@ to @a['Feedback']@,
and @note@ to @a['Note']@.
",
proc(a, Q::`aim/Trig/Problem`)
local i, j, ans, argtype, rightans, wrong, mark, partright,
eq, interval, llim, rlim, feedback, note;
if type(a,`aim/Question/Attempt`) then
argtype := "attempt";
ans := a['Answer'];
elif type(a,`aim/Question/ShortAttempt`) then
argtype := "shortattempt";
ans := a['Answer'];
else
argtype := "ordinary";
ans := eval(a);
fi;
ans := sort([op(ans)], `<` @ evalf);
eq, interval, rightans := op(Q);
llim, rlim := op(interval);
feedback := NULL;
note := "";
if is(ans[1] < llim - 0.01 or ans[-1] > rlim + 0.01) then
feedback :=
feedback,
sprintf(
__("Solutions should lie in the interval $(%s, %s)$.\\\\"),
TextStyle(LaTeX(llim)), TextStyle(LaTeX(rlim)) );
note := __("Solutions do not all lie in required interval");
if is(ans[1] < -2 * Pi - 0.01 or ans[-1] > 2 * Pi + 0.01) then
feedback :=
feedback,
__("Perhaps you attempted to give answers in degrees;
note that answers should be in radians.\\\\");
note := __("Solutions in degrees?");
fi;
fi;
j := 1;
mark := 0;
wrong := NULL;
partright := NULL;
for i to nops(ans) do
while j < nops(rightans) and is(op(j, rightans) < op(i, ans)) and
not `aim/TestNumeric`(op(j, rightans), op(i, ans), 'margin' = 0.02) do
j := j + 1;
od;
if j > nops(rightans) then
wrong := wrong, i;
elif type(op(j, rightans), Not(float)) then
# exact answer only accepted
if `aim/TestEqual`(op(j, rightans), op(i, ans)) then
mark := mark + 1/nops(rightans);
j := j + 1;
else
wrong := wrong, i;
fi;
elif `aim/TestNumeric`(op(j, rightans), op(i, ans), 'dpround' = -2) then
mark := mark + 1/nops(rightans);
j := j + 1;
elif `aim/TestNumeric`(op(j, rightans), op(i, ans), 'margin' = 0.02) then
if i < nops(ans) and is(op(i, ans) < op(j, rightans)) and
is(op(i + 1, ans) <= op(j, rightans)) then
wrong := wrong, i;
else
partright := partright, i;
mark := mark + 0.8/nops(rightans);
j := j + 1;
fi;
else
wrong := wrong, i;
fi;
od;
if mark = 0 then
feedback :=
feedback,
__("None of the solutions you have given is correct.\\\\");
if note = "" then
note := __("No correct solutions");
fi;
elif nops(ans) > nops(rightans) then
# penalise for too many solutions
mark := max(0, mark - (nops(ans) - nops(rightans))/nops(rightans));
if note = "" then
note := __("At least one extraneous solution");
fi;
if nops([wrong]) = 1 then
feedback :=
feedback,
__("You gave an extra solution which is not correct.\\\\");
else
feedback :=
feedback,
__("You gave some extra solutions which are not correct.\\\\");
fi;
elif nops([partright]) > 0 and note = "" then
note := __("At least one inaccurate solution");
fi;
if mark = 0 then
; #already dealt with
elif mark < 1 then
if nops(ans) <> nops(rightans) then
if note = "" then
note := __("Insufficient number of solutions");
fi;
if nops(rightans) = 1 then
feedback :=
feedback, __("Note that, in all, there is only one solution.\\\\");
else
feedback :=
feedback,
sprintf(
__("Note that, in all, there are %d (distinct) solutions.\\\\"),
nops(rightans) );
fi;
fi;
if nops([wrong]) + nops([partright]) > 0 then
feedback :=
feedback,
__("Ordering your solutions from smallest to largest \\dots\\\\");
fi;
if nops([wrong]) = 1 then
feedback :=
feedback,
sprintf( __("Your %s solution is incorrect.\\\\"), nth(wrong) );
elif nops([wrong]) > 1 then
feedback :=
feedback,
sprintf( __("Your %s"), nth(wrong[1]) );
for i from 2 to nops([wrong]) - 1 do
feedback :=
feedback,
sprintf( __(", %s"), nth(wrong[i]) );
od;
feedback :=
feedback,
sprintf( __(" and %s solutions are incorrect.\\\\"), nth(wrong[-1]) );
fi;
if nops([partright]) = 1 then
feedback :=
feedback,
sprintf(
__("Your %s solution is nearly correct
(but has insufficient accuracy).\\\\"),
nth(partright) );
elif nops([partright]) > 1 then
feedback :=
feedback,
sprintf( __("Your %s"), nth(partright[1]) );
for i from 2 to nops([partright]) - 1 do
feedback :=
feedback,
sprintf( __(", %s"), nth(partright[i]) );
od;
feedback :=
feedback,
sprintf(
__(" and %s solutions are nearly correct
(but do not have sufficient accuracy).\\\\"),
nth(partright[-1]) );
fi;
fi;
RETURN([mark, cat("<latex>\n", feedback, "</latex>\n"), note,
[wrong], [partright]]);
end
):
######################################################################
`Package/Assign`(
`aim/TrigSLN/Test`::[numeric, string, string, list, list],
"This function assumes that the student was asked to do a
trigonometry question @Q@ where the expected answer is the smallest,
largest and number of solutions of an equation on a certain interval.
The first argument @a@ might be an
#`aim/Question/Attempt`# or #`aim/Question/ShortAttempt`# object
(in which case we put @ans := a['Answer']@) or it might just be
the student's answer (in which case we put @ans = a@).
In any case, the function checks whether @ans@ is correct.
If not, it checks @1/3@ is awarded for each accurate solution;
@1/3@ is also awarded for giving the correct number of solutions.
A solution is deemed correct if it is accurate to 2 decimal places.
Solutions that are inaccurate but within 5% also score, but at the
rate of 80% that of a fully correct answer. Wrong or inaccurate answers
generate feedback, identifying which of the solutions are incorrect.
The function returns a list of the form
@[mark, feedback, note, [wrong], [partright]]@. If
@a@ is an #`aim/Question/Attempt`# then the function also sets
@a['RawMark']@ to @mark@, appends @feedback@ to @a['Feedback']@,
and @note@ to @a['Note']@.
",
proc(a, Q::`aim/Trig/Problem`)
local i, j, allans, ans, argtype, rightans, wrong, mark, partright,
eq, interval, llim, rlim, feedback, note;
if type(a,`aim/Question/Attempt`) then
argtype := "attempt";
ans := a['Answer'];
elif type(a,`aim/Question/ShortAttempt`) then
argtype := "shortattempt";
ans := a['Answer'];
else
argtype := "ordinary";
ans := eval(a);
fi;
eq, interval, rightans := op(Q);
llim, rlim := op(interval);
feedback := NULL;
note := "";
allans := ans;
ans := select(type, [op(1 .. 2, ans)], realcons);
if nops(ans) = 2 and is(ans[1] > ans[2]) then
ans[1], ans[2] := ans[2], ans[1];
feedback :=
feedback,
__("Your solutions were given in the wrong order.\\\\");
note := __("Solutions in wrong order");
fi;
if nops(ans) > 0 and is(ans[1] < llim - 0.01 or ans[-1] > rlim + 0.01) then
feedback :=
feedback,
sprintf(
__("Solutions should lie in the interval $(%s, %s)$.\\\\"),
TextStyle(LaTeX(llim)), TextStyle(LaTeX(rlim)) );
note := __("Solutions do not all lie in required interval");
if is(ans[1] < -2 * Pi - 0.01 or ans[-1] > 2 * Pi + 0.01) then
feedback :=
feedback,
__("Perhaps you attempted to give answers in degrees;
note that answers should be in radians.\\\\");
note := __("Solutions in degrees?");
fi;
fi;
j := 1;
mark := 0;
wrong := NULL;
partright := NULL;
for i to nops(ans) do
while j < 2 and op(j, rightans) < op(i, ans) and
not `aim/TestNumeric`(op(j, rightans), op(i, ans), 'margin' = 0.02) do
j := j + 1;
od;
if j > 2 then
wrong := wrong, i;
elif type(op(j, rightans), Not(float)) then
# exact answer only accepted
if `aim/TestEqual`(op(j, rightans), op(i, ans)) then
mark := mark + 1/3;
j := j + 1;
else
wrong := wrong, i;
fi;
elif `aim/TestNumeric`(op(j, rightans), op(i, ans), 'dpround' = -2) then
mark := mark + 1/3;
j := j + 1;
elif `aim/TestNumeric`(op(j, rightans), op(i, ans), 'margin' = 0.02) then
if i < nops(ans) and is(op(i, ans) < op(j, rightans)) and
is(op(i + 1, ans) <= op(j, rightans)) then
wrong := wrong, i;
else
if i = 1 and j = 2 then
feedback :=
feedback,
__("You have missed a smaller solution.\\\\");
note := __("Missed a smaller solution");
fi;
partright := partright, i;
mark := mark + 0.8/3;
j := j + 1;
fi;
else
wrong := wrong, i;
fi;
od;
if mark = 0 then
feedback :=
feedback,
__("You gave no correct solutions.\\\\");
note := __("No correct solutions");
elif mark < 2/3 then
if nops([wrong]) = 1 and nops(ans) = 2 then
feedback :=
feedback,
sprintf(
__("Your %s solution is incorrect.\\\\"),
`if`(evalb(wrong = 1), "smaller", "larger") );
fi;
if nops([partright]) = 1 then
if nops(ans) = 1 then
feedback :=
feedback,
__("The solution you have given is nearly correct
(but has insufficient accuracy).\\\\");
else
feedback :=
feedback,
sprintf(
__("Your %s solution is nearly correct
(but has insufficient accuracy).\\\\"),
`if`(evalb(partright = 1), "smaller", "larger") );
fi;
elif nops([partright]) = 2 then
feedback :=
feedback,
__("Both your solutions are nearly correct
(but have insufficient accuracy).\\\\");
fi;
fi;
ans := allans;
if op(3, rightans) = op(3, ans) then
mark := mark + 1/3;
else
feedback :=
feedback,
__("You have not given the (correct) number of solutions.\\\\");
if note = "" then
note := __("Incorrect number of solutions");
fi;
wrong := wrong, 3;
fi;
if mark = 0 then
note := __("Totally incorrect answer");
elif nops([partright]) > 0 and note = "" then
note := __("At least one inaccurate solution");
fi;
RETURN([mark, cat("<latex>\n", feedback, "</latex>\n"), note,
[wrong], [partright]]);
end
):
######################################################################
EndPackage():
--- NEW FILE: Util1.mpl ---
# @(#)$Id: Util1.mpl,v 1.1.2.1 2003/07/09 09:59:48 gregg0 Exp $
# Copyright (C) 2003 Greg Gamble
# Distributed without warranty under the GPL - see README for details
("Package.mpl"):
Package("aim/Util1","
This package provides some extra utility functions initially created
as they were needed by or were useful with the #`aim/Trig`# package.
"
):
######################################################################
`Package/Assign`(
decplaces::float,
"Returns @x@ rounded to @n@ decimal places",
proc(x::realcons, n::integer)
round(x * 10^n) * 0.1^n;
end
):
`Package/Assign`(
`SimplestDecimal`::float,
"Returns @x@ to the least number of decimal places required to represent
@x@ accurately. The optional argument @'maxdp' = d@ or
@'maxsf' = s@ may be included, where @d, s@ are integers, in which
case at most @d@ decimal places or @s@ significant digits are included
in the returned result, rounding if necessary.",
proc(x::realcons)
local d;
d := Digits;
if nargs > 1 then
if op(1, args[2]) = 'maxsf' then
d := op(2, args[2]);
elif op(1, args[2]) = 'maxdp' then
d := op(2, args[2]);
if floor(abs(x)) <> 0 then
d := d + floor( log[10]( abs(x) ) ) + 1;
fi;
fi;
fi;
while d > 1 and evalf[d](x) = evalf[d - 1](x) do
d := d - 1;
od;
return evalf[d](x);
end
):
`Package/Assign`(
Exists::boolean,
"exists quantifier, returns the result of: exists x in @lis@, @func@(x)
where @func@ is @f@ if @f@ has type procedure or is defined by
@func@ := x -> type(x, @f@)",
proc(lis::{list,set,string}, f)
local x, func;
func := `if`(type(f, procedure), f, x -> type(x, f));
for x in lis do
if func(x) then
return true;
fi;
od;
return false;
end
):
`Package/Assign`(
Forall::boolean,
"forall quantifier, returns the result of: for all x in @lis@, @func@(x)
where @func@ is @f@ if @f@ has type procedure or is defined by
@func@ := x -> type(x, @f@)",
proc(lis::{list,set,string}, f)
local func;
func := `if`(type(f, procedure), f, x -> type(x, f));
not Exists(lis, x -> not func(x));
end
):
`Package/Assign`(
In::boolean,
"Returns @true@ if @x@ is in the interval [@llim@, @rlim@], or
@false@ otherwise",
proc(x::realcons, llim::realcons, rlim::realcons)
is(x >= llim and x <= rlim);
end
):
`Package/Assign`(
nth::string,
"Returns the ordinal corresponding to @n@, e.g. @nth(3)@ returns 3rd",
proc(n::integer)
local lasttwo, lastdigit;
if n < 0 then
cat(n, "th");
else
lasttwo := irem(n, 100);
lastdigit := irem(n, 10);
if lastdigit = 1 and lasttwo <> 11 then
cat(n, "st");
elif lastdigit = 2 and lasttwo <> 12 then
cat(n, "nd");
elif lastdigit = 3 and lasttwo <> 13 then
cat(n, "rd");
else
cat(n, "th");
fi;
fi;
end
):
`Package/Assign`(
TextStyle::string,
"Returns a LaTeX textstyle version of a displaystyle LaTeX string.
At the moment it only changes \"\\frac{..}{..}\" to \"{..}/{..}\"",
proc(s::string)
local s_, pos, posb, posn, bcount;
s_ := s;
do
pos := SearchText("\\frac", s_);
if pos = 0 then
return s_;
fi;
posb := pos + 5;
while posb < length(s_) and s_[posb] = " " do
posb := posb + 1;
od;
posn := posb; #position of start of numerator
bcount := 0;
if s_[posb] = "{" then
bcount := bcount + 1;
posb := posb + 1;
fi;
while bcount > 0 and posb < length(s_) do
if s_[posb] = "{" then
bcount := bcount + 1;
elif s_[posb] = "}" then
bcount := bcount - 1;
fi;
posb := posb + 1;
od;
if posb >= length(s_) or bcount < 0 then
# s_ doesn't have a well-formed \frac{..}{..} ... just return
return s_;
fi;
s_ := cat(s_[1 .. pos - 1], s_[posn .. posb - 1], "/", s_[posb .. -1]);
od;
end
):
######################################################################
EndPackage():
|
|
From: <gr...@us...> - 2003-07-09 09:41:36
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv29933
Modified Files:
Tag: develop_2_1
Aim.mpl Make.mpl
Log Message:
Allow PackageList to have comments and whitespace. - GG
Index: Aim.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -C2 -d -r1.1.1.1.2.1 -r1.1.1.1.2.2
*** Aim.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
--- Aim.mpl 9 Jul 2003 09:41:33 -0000 1.1.1.1.2.2
***************
*** 17,22 ****
while (line <> 0) do
if line <> "" then
- line := util_unixify(line);
lines := lines,line:
fi;
--- 17,25 ----
while (line <> 0) do
+ # remove comment (possibly preceded by whitespace) or
+ # whitespace at end of line from line
+ line := StringTools:-RegSub("^([^ \t#]*)([ \t]*#.*|[ \t]*.*$)?", line, "\\1");
+ line := util_unixify(line);
if line <> "" then
lines := lines,line:
fi;
Index: Make.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Make.mpl,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -C2 -d -r1.1.1.1.2.1 -r1.1.1.1.2.2
*** Make.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
--- Make.mpl 9 Jul 2003 09:41:33 -0000 1.1.1.1.2.2
***************
*** 97,100 ****
--- 97,103 ----
Make_ok := true;
while (line <> 0) do
+ # remove comment (possibly preceded by whitespace) or
+ # whitespace at end of line from line
+ line := StringTools:-RegSub("^([^ \t#]*)([ \t]*#.*|[ \t]*.*$)?", line, "\\1");
line := util_unixify(line);
if line <> "" then
|
|
From: <gr...@us...> - 2003-07-09 09:34:21
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv29264
Modified Files:
Tag: develop_2_1
ConfigFields.mpl
Log Message:
Updated data re MapleVersion. Corrected typo. - GG
Index: ConfigFields.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ConfigFields.mpl,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -C2 -d -r1.1.1.1.2.1 -r1.1.1.1.2.2
*** ConfigFields.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
--- ConfigFields.mpl 9 Jul 2003 09:34:18 -0000 1.1.1.1.2.2
***************
*** 22,29 ****
integer,"
The major version number of Maple under which AIM is running. The
! allowed values are 5, 6 or 7. Maple 8 is not currently supported
! because various features of the codegen package have been withdrawn
! and replaced by a different mechanism. (This will probably be a Good
! Thing in the long term.)"],
['ServletURL',
--- 22,27 ----
integer,"
The major version number of Maple under which AIM is running. The
! known allowed values are 5, 6, 7 or 8 (though some things are undoubtedly
! broken for Maple 5)."],
['ServletURL',
***************
*** 45,49 ****
['RootDir',
string,"
! The top of the directory heirarchy where AIM's data files (with
information about subjects, quizzes, questions and students) are
stored."],
--- 43,47 ----
['RootDir',
string,"
! The top of the directory hierarchy where AIM's data files (with
information about subjects, quizzes, questions and students) are
stored."],
|
|
From: <gr...@us...> - 2003-07-09 09:29:27
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv28701
Modified Files:
Tag: develop_2_1
Random.mpl
Log Message:
Added function: randnotfrom - GG
Index: Random.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v
retrieving revision 1.1.1.1.2.1
retrieving revision 1.1.1.1.2.2
diff -C2 -d -r1.1.1.1.2.1 -r1.1.1.1.2.2
*** Random.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
--- Random.mpl 9 Jul 2003 09:29:24 -0000 1.1.1.1.2.2
***************
*** 257,259 ****
--- 257,276 ----
);
+ `Package/Assign`(
+ randnotfrom::integer,
+ "Return a random integer in a range or list not in @lis1@ that is
+ coprime to each element of @lis2@ (@lis2@ is optional; if omitted
+ it is taken to be the empty set)",
+ proc(range::{integer,range(integer),list}, lis1::{list,set},
+ lis2::{list(integer),set(integer)})
+ local n, lis2_;
+ n := Rand(range);
+ lis2_ := `if`(evalb(nargs = 2), {}, lis2);
+ while member(n, lis1) or Exists(lis2_, x -> igcd(n, x) <> 1) do
+ n := Rand(range);
+ od;
+ n;
+ end
+ ):
+
EndPackage():
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv12886
Modified Files:
Tag: develop_2_1
Aim.mpl AliceServer.mpl AutoConf.mpl Cache.mpl Class.mpl
ConfigFields.mpl Console.mpl Date.mpl fixintrep5.mpl
fixintrep6.mpl FullPackage.mpl HTML.mpl I18n.mpl
ImageCache.mpl LaTeX.mpl Local.mpl Make.mpl OS0_DOS.mpl
OS0_Linux.mpl OS0.mpl OS0_OSX.mpl OS.mpl Package.mpl
ParsedText.mpl Pot.mpl Random.mpl SafeParse.mpl Servlet.mpl
Site.mpl trylast.mpl Util0.mpl Util.mpl
Log Message:
Ensuring develop_2_1 .mpl files have id headers - GG
Index: Aim.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Aim.mpl 20 Apr 2003 23:15:21 -0000 1.1.1.1
--- Aim.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: AliceServer.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AliceServer.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** AliceServer.mpl 20 Apr 2003 23:15:22 -0000 1.1.1.1
--- AliceServer.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: AutoConf.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConf.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** AutoConf.mpl 20 Apr 2003 23:15:24 -0000 1.1.1.1
--- AutoConf.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Cache.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Cache.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Cache.mpl 20 Apr 2003 23:15:24 -0000 1.1.1.1
--- Cache.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Class.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Class.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Class.mpl 20 Apr 2003 23:15:27 -0000 1.1.1.1
--- Class.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ConfigFields.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ConfigFields.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** ConfigFields.mpl 20 Apr 2003 23:15:28 -0000 1.1.1.1
--- ConfigFields.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Console.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Console.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Console.mpl 20 Apr 2003 23:15:28 -0000 1.1.1.1
--- Console.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Date.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Date.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Date.mpl 20 Apr 2003 23:15:31 -0000 1.1.1.1
--- Date.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: fixintrep5.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/fixintrep5.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** fixintrep5.mpl 20 Apr 2003 23:15:32 -0000 1.1.1.1
--- fixintrep5.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: fixintrep6.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/fixintrep6.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** fixintrep6.mpl 20 Apr 2003 23:15:32 -0000 1.1.1.1
--- fixintrep6.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: FullPackage.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/FullPackage.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** FullPackage.mpl 20 Apr 2003 23:15:34 -0000 1.1.1.1
--- FullPackage.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: HTML.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/HTML.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** HTML.mpl 20 Apr 2003 23:15:37 -0000 1.1.1.1
--- HTML.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: I18n.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/I18n.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** I18n.mpl 20 Apr 2003 23:15:37 -0000 1.1.1.1
--- I18n.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ImageCache.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ImageCache.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** ImageCache.mpl 20 Apr 2003 23:15:38 -0000 1.1.1.1
--- ImageCache.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: LaTeX.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/LaTeX.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** LaTeX.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- LaTeX.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
read("Package.mpl"):
Package("LaTeX","
Index: Local.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Local.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Local.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- Local.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Make.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Make.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Make.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- Make.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_DOS.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_DOS.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** OS0_DOS.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_DOS.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_Linux.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_Linux.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** OS0_Linux.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_Linux.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** OS0.mpl 20 Apr 2003 23:15:41 -0000 1.1.1.1
--- OS0.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_OSX.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_OSX.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** OS0_OSX.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_OSX.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** OS.mpl 20 Apr 2003 23:15:41 -0000 1.1.1.1
--- OS.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Package.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Package.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Package.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- Package.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ParsedText.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ParsedText.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** ParsedText.mpl 20 Apr 2003 23:15:43 -0000 1.1.1.1
--- ParsedText.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Pot.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Pot.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Pot.mpl 20 Apr 2003 23:15:43 -0000 1.1.1.1
--- Pot.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Random.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Random.mpl 20 Apr 2003 23:15:44 -0000 1.1.1.1
--- Random.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: SafeParse.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/SafeParse.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** SafeParse.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- SafeParse.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Servlet.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Servlet.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Servlet.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- Servlet.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Site.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Site.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Site.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- Site.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: trylast.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/trylast.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** trylast.mpl 20 Apr 2003 23:15:47 -0000 1.1.1.1
--- trylast.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Util0.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Util0.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Util0.mpl 20 Apr 2003 23:15:49 -0000 1.1.1.1
--- Util0.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Util.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Util.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -d -r1.1.1.1 -r1.1.1.1.2.1
*** Util.mpl 20 Apr 2003 23:15:49 -0000 1.1.1.1
--- Util.mpl 8 Jul 2003 06:21:33 -0000 1.1.1.1.2.1
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple
In directory sc8-pr-cvs1:/tmp/cvs-serv32399
Modified Files:
Aim.mpl AliceServer.mpl AutoConf.mpl Cache.mpl Class.mpl
ConfigFields.mpl Console.mpl Date.mpl fixintrep5.mpl
fixintrep6.mpl FullPackage.mpl HTML.mpl I18n.mpl
ImageCache.mpl LaTeX.mpl Local.mpl Make.mpl OS0_DOS.mpl
OS0_Linux.mpl OS0.mpl OS0_OSX.mpl OS.mpl Package.mpl
ParsedText.mpl Pot.mpl Random.mpl SafeParse.mpl Servlet.mpl
Site.mpl trylast.mpl Util0.mpl Util.mpl
Log Message:
Re-commit of files with headers added. Apparently didn't go through
previously. - GG
Index: Aim.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Aim.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Aim.mpl 20 Apr 2003 23:15:21 -0000 1.1.1.1
--- Aim.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: AliceServer.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AliceServer.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** AliceServer.mpl 20 Apr 2003 23:15:22 -0000 1.1.1.1
--- AliceServer.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: AutoConf.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/AutoConf.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** AutoConf.mpl 20 Apr 2003 23:15:24 -0000 1.1.1.1
--- AutoConf.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Cache.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Cache.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Cache.mpl 20 Apr 2003 23:15:24 -0000 1.1.1.1
--- Cache.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Class.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Class.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Class.mpl 20 Apr 2003 23:15:27 -0000 1.1.1.1
--- Class.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ConfigFields.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ConfigFields.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ConfigFields.mpl 20 Apr 2003 23:15:28 -0000 1.1.1.1
--- ConfigFields.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Console.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Console.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Console.mpl 20 Apr 2003 23:15:28 -0000 1.1.1.1
--- Console.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Date.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Date.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Date.mpl 20 Apr 2003 23:15:31 -0000 1.1.1.1
--- Date.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: fixintrep5.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/fixintrep5.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** fixintrep5.mpl 20 Apr 2003 23:15:32 -0000 1.1.1.1
--- fixintrep5.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: fixintrep6.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/fixintrep6.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** fixintrep6.mpl 20 Apr 2003 23:15:32 -0000 1.1.1.1
--- fixintrep6.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: FullPackage.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/FullPackage.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** FullPackage.mpl 20 Apr 2003 23:15:34 -0000 1.1.1.1
--- FullPackage.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: HTML.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/HTML.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** HTML.mpl 20 Apr 2003 23:15:37 -0000 1.1.1.1
--- HTML.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: I18n.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/I18n.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** I18n.mpl 20 Apr 2003 23:15:37 -0000 1.1.1.1
--- I18n.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ImageCache.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ImageCache.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ImageCache.mpl 20 Apr 2003 23:15:38 -0000 1.1.1.1
--- ImageCache.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: LaTeX.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/LaTeX.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** LaTeX.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- LaTeX.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
read("Package.mpl"):
Package("LaTeX","
Index: Local.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Local.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Local.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- Local.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Make.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Make.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Make.mpl 20 Apr 2003 23:15:40 -0000 1.1.1.1
--- Make.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_DOS.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_DOS.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OS0_DOS.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_DOS.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_Linux.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_Linux.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OS0_Linux.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_Linux.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OS0.mpl 20 Apr 2003 23:15:41 -0000 1.1.1.1
--- OS0.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS0_OSX.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS0_OSX.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OS0_OSX.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- OS0_OSX.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: OS.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/OS.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** OS.mpl 20 Apr 2003 23:15:41 -0000 1.1.1.1
--- OS.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Package.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Package.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Package.mpl 20 Apr 2003 23:15:42 -0000 1.1.1.1
--- Package.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: ParsedText.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/ParsedText.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ParsedText.mpl 20 Apr 2003 23:15:43 -0000 1.1.1.1
--- ParsedText.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Pot.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Pot.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Pot.mpl 20 Apr 2003 23:15:43 -0000 1.1.1.1
--- Pot.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Random.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Random.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Random.mpl 20 Apr 2003 23:15:44 -0000 1.1.1.1
--- Random.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: SafeParse.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/SafeParse.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** SafeParse.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- SafeParse.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Servlet.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Servlet.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Servlet.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- Servlet.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Site.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Site.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Site.mpl 20 Apr 2003 23:15:46 -0000 1.1.1.1
--- Site.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: trylast.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/trylast.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** trylast.mpl 20 Apr 2003 23:15:47 -0000 1.1.1.1
--- trylast.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Util0.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Util0.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Util0.mpl 20 Apr 2003 23:15:49 -0000 1.1.1.1
--- Util0.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
Index: Util.mpl
===================================================================
RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/Util.mpl,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Util.mpl 20 Apr 2003 23:15:49 -0000 1.1.1.1
--- Util.mpl 8 Jul 2003 04:30:41 -0000 1.2
***************
*** 1,2 ****
--- 1,4 ----
+ # @(#)$Id$
+
# Copyright (C) 2003 Neil Strickland
# Distributed without warranty under the GPL - see README for details
|
|
From: <gus...@us...> - 2003-07-08 01:00:20
|
Update of /cvsroot/aimmath/AIM/bin
In directory sc8-pr-cvs1:/tmp/cvs-serv6368/bin
Added Files:
Tag: gustav_2_1
blat.exe
Log Message:
Included for convenience
--- NEW FILE: blat.exe ---
(This appears to be a binary file; contents omitted.)
|
|
From: <gus...@us...> - 2003-07-08 00:58:22
|
Update of /cvsroot/aimmath/AIM/bin In directory sc8-pr-cvs1:/tmp/cvs-serv6087/bin Log Message: Directory /cvsroot/aimmath/AIM/bin added to the repository --> Using per-directory sticky tag `gustav_2_1' |