Annotation of capa/capa51/pProj/Changes, revision 1.3
1.1 albertel 1:
1.3 ! albertel 2:
! 3: New functions
! 4:
! 5:
! 6: array_min(array_name)
! 7: array_max(array_name)
! 8:
! 9: will calculate the min or max value from the
! 10: array given by array_name. All elements in
! 11: array array_name should be of numerical type,
! 12: if there is one element assigned a string value,
! 13: then array_min() and array_max() will give an
! 14: error, indicating that it could not calculate
! 15: the min or max value for strings.
! 16:
! 17: /LET arr[123]=123
! 18: /LET arr[456]=456
! 19: /LET arr[1]=1
! 20: /LET arr[34]=34
! 21: /LET arr[56]=56
! 22: /LET arr[78]=78
! 23: /LET arr[12]=12
! 24: /LET arr[4]=4
! 25: /LET arr["124"]=124
! 26: /LET arr[1.2]=1.01234567
! 27: /LET max = array_max(arr)
! 28: /LET min = array_min(arr)
! 29:
! 30: The results of max will be 456 and min will be 1.
! 31:
! 32:
! 33: array_moments(result_array, input_array)
! 34:
! 35:
! 36: /LET elements = array_moments(result_array, data_array)
! 37:
! 38: The input array is data_array and the calculated results will be placed in a newly
! 39: created array named result_array. This resulting array contains exactly five elements,
! 40: result_array[0] = number of elements in input array
! 41: result_array[1] = mean value of elements in input array
! 42: result_array[2] = variance of elements in input array
! 43: result_array[3] = skewness of elements in input array
! 44: result_array[4] = Kurtosis value of elements in input array
! 45:
! 46: Suppose all values in array data_array is denoted by $X$,
! 47: the $i$-th element in the array is denoted by $x_i$, and
! 48: the number of elements in the array is denoted by $n$.
! 49: The formula of mean value is given by $\Sigma_{i=0}^{n-1} x_i / n$.
! 50: Let $\mu$ represents the mean value of the array.
! 51: The variance is defined as $\frac{\Sigma_{i=0}^{n-1}(x_i - \mu)^2}{n-1}$.
! 52: The standard deviation of the array can be calculated by taking the square root
! 53: of variance. Let $\sigma$ denotes the standard deviation of the array.
! 54: Skewness is calculated from $\frac{\Sigma_{x=0}^{n-1}((x_i - \mu)/\sigma)^3}{n}$
! 55: The Kurtosis value is from the formula
! 56: \frac{\Sigma_{i=0}^{n-1}(x_i - \mu)/\sigma)^4}{n} - 3$
! 57: The constant $3$ is used to make the normal distribution appear to have a zero Kurtosis.
! 58:
! 59:
! 60: Formula answer
! 61:
! 62: As of CAPA 5.1, a new type of answer can be used by the instructor.
! 63: A formula as an answer to a problem. That is, the instructor defines a string of
! 64: formula and ask the students to enter the formula, as long as the entered formula
! 65: is equivalent to the answer formula, the CAPA system will check and
! 66: issue correctness or incorrectness based on their equivalence.
! 67: The underlying mechanism behind this type of answer is that besides the formula string,
! 68: two additional pieces of informations have to be provided
! 69: by the instructor, (1) the list of variables used in the answer string and
! 70: (2) the values of these variables to be used in evaluating formula equivalence.
! 71: Those two pieces of information are given within a pair of angle brackets appearing
! 72: as the right hand side of the keywork "eval =".
! 73:
! 74: The list of variables is entered as a string or a variable containing a
! 75: string value. Within that string, each variable is separated by a comma.
! 76: The symbol '@' then follows.
! 77: Two forms of variable values can be used. A string with comma separated numerical values
! 78: or two comma separated numerical values divided by a ':' symbol and followed by
! 79: a '#' symbol and an integer indicating the number of values to be
! 80: interpolated within the two values given previously. Both form can be replaced by
! 81: a variable containing the proper string value.
! 82:
! 83: Tolerence can be given to allow the instructor fine tune the results
! 84: of acceptable values when checking the equivalence of two formulae.
! 85:
! 86:
! 87: /LET f="x^2+y*y^(2)"
! 88: /LET vlist = "x,y"
! 89: /LET pts = "1,4:4,5#5"
! 90:
! 91: /ANS(f,str=FML ,eval = <"x,y" @ "-1.0,-1.0":"1,1"#4, pts, "0.0,0.0"> ,tol=1e-9)
! 92:
! 93: --
1.2 albertel 94: Fixed rad != 1/s in capaUnit.c
95: add init_array() function to the user
1.1 albertel 96:
97:
98:
99:
100:
101: --
102: changes from 4.6.3 to 5.0.0
103:
104: units
105:
106: Use stacks of data structure to implement
107: /WHILE /ENDW loops
108: /IF /ELSE /ENDIF
109:
110: use EoL token to replace '\n', '\r''\n', and '\r'.
111:
112:
113:
114: FILE FORMAT
115: setX.db header will look like
116: 9999999,
117: 1222111111111111111111111
118: 1111111111111111111111
119: abc,y,xy,x
120: abcde,...
121:
122:
123:
124:
125: prints a percentage sign in the term summary.
126:
127: Added a rule to the <S_VARIABLE> state in the lexer so \\{Space}*\n
128: can occur inside a /DIS command
129:
130: Fixed the rule matching in the <S_STRING> state so that \\{Space}+\n
131: will actually get matched, (Before the string text matching rule was
132: getting matched) (Performance detraction)
133:
134: capalogin, and capaweb things ignore the generation of SIGFPE, this is
135: because capa_check_answer was generating strange Floating point
136: underflow errors
137:
138: added possible option capaweb_cgibin_path, specify what directory the
139: capasbin and capahtml are located in, if not specified defaults to
140: "capa-bin"
141:
142: Fixed bug in inhibiting the display of the Summary Score in capalogin
143: (was instead displaying what the option's value was)
144:
145: Now accepts numbers of the form .{Number}+[Ee]{+,-}*{Number}+
146: (things like .3e-2)
147:
148: Changed message to read "Hand-graded Correct"
149:
150: was not initializing all the values to the defaults in the first
151: problem in a set in capaCommon.c (capa_parse)
152:
153: capa_set_entry was returning an error if setting the last entry in the
154: file
155:
156: Now emits a WARNING in all cases of a numerical answer with zero
157: tolerance except when it is an integer answer and the tolerance of
158: zero is specified.
159:
160: error messages now contain a WARNING or ERROR whether the error can be
161: ignored (WARNING) or shouldn't be (ERROR)
162:
163: qzparse now correctly genereates answer strings when running with -Tb
164: and -Stu
165:
166: --
167: changes from 4.6.2 to 4.6.3
168:
169: Issac made vast changes, the WhatsNew document will give a good
170: indication of what is different.
171:
172: --
173: changes from 4.6.1 to 4.6.2
174:
175: capalogin gets a maximum inactivity time from capa.config file, option
176: is capalogin_inactivity_delay specified in minutes , default is 60 minutes
177:
178: capalogin gets exam_path and quiz_path from capa.config file, option
179: is exam_path, quiz_path
180:
181: capalogin now gets delay time from capa.config, option is
182: capalogin_goodbye_delay, defaults to five if the option is not
183: specified or capa.config can't be read.
184:
185: allcapaid understands starting set option, specifiying calss directory
186: on command line, doesn't create files but prints info to screen with
187: -i option, and can have an output directory specified with the -d
188: option
189:
190: allcapaid creates a capaID directory and sectionX.id files
191:
192: allpin.c move to allcapaid.c
193:
194: capaCgiUtils.c modified to have friendlier messages on problems that
195: have not yet been correctly answered, now says "Not correct yet", and
196: no longer says Incorrect on problems that are incorrect with no more
197: tries.
198:
199: capa.config was modified, comments must be on their own lines and must
200: have a # in the first column
201:
202: capa_get_header forgot to init nq before using it.
203:
204: qzparse was incorrectly handling the TeXfooter with the new directory
205: specification code.
206:
207: changed the exit button so that at least netscape 3.0 and 4.0 browsers
208: actually close the window.
209:
210: changed all 'method="link"' to 'method="get"'
211:
212: commented out alot of error condition printfs in capaCommon.c where
213: the errcondition was signified already by a returned error
214: code. Cleans up some of the web output when silly things are entered.
215:
216: if VSET is an empty string, set g_vset to 1. (sscanf would assign 0 by
217: default.)
218:
219: Added Reload Button to top of the capa pages, it resends the same data
220: as the "Try current set" or View Previous set button did.
221:
222: Explanations are now printed on the web when viewing previous sets.
223:
224: --
225: changes from 4.6 to 4.6.1 (capasbin, capahtml distributed to colorado)
226:
227: added result code of UNIT_NOTNEEDED for when student specifies a unit
228: but the answer to a question does not need units. Modified capalogin.c
229: and capaCgiUtils.c to make use of this new situation along with
230: changing capaCommon.c:capa_check_answer to return this result
231:
232: fixed a problem where if a student put a space at the end of his answer
233: that included units, the space would be thought of as a multiply sign.
234:
235: capa_get_student forgot to copy the student number into the returned
236: student structure
237:
238: changed the logging of submissions to now only log non blank answers
239: from students and to use a smaller date string, hopefully this will
240: minimize the amount of data created.
241:
242: changed the login screen help link to look a button, and added a
243: similar button go right beside the Exit button on assignment pages.
244:
245: gave qzparse the -d option to specify a different directory for the
246: output files.
247:
248: changed the "Incorrect, no more tries" messages to correctly display
249: the last answer and imbedded the last answer back into the web page.
250:
251: created w_log_submissions and modified w_get_input to log the
252: submissions received from the web page
253:
254: in capaHTML.c error code is printed out when an error is returned from
255: w_get_input.
256:
257: modified print_quizz to check w_log_attempt's return value and emit an
258: error message if it was incabable of doing so.
259:
260: changed w_log_attempt to no longer need a section number argument
261:
262: added more info to the error message about not able to access class
263: directory.
264:
265: modified capaCgiUtils.h to check the result from getenv for a NULL pointer
266: (In case the env variable is not set) in all uses of getenv
267:
268: when printing out answers to questions when in VIEW_PREVIOUS_MODE the
269: format string was missing a %s to print the units out and a <br> to
270: keep the next problem from starting on the same line.
271:
272: changed all occurances of × to × as per HTML 4.0 specs
273: (Macintoshes now correctly display multiplication sign.)
274:
275: changed all occurances of /class.html to /CAPA/class.html
276:
277: modified the qzparse.c and allpin.c to use the new versioning method
278:
279: capasbin and capahtml now emit a comment that has the CAPA_VER and
280: COMPILE_DATE info
281:
282: in capaCgiUtils.c I moved the hidden input fields to be listed infront
283: of the questions, this way early button mashers don't forget to send
284: this info back to the server
285:
286: using the define CAPA_VER and COMIPLE_DATE for the version number and
287: date of compiling of the code, set in the Makefile
288:
289: --
290: changes from 4.5 to 4.6
291:
292: changed u_parse_unit to be a series of nested elseifs to handle
293: conditions where invalid characters appear in the unit spec
294:
295: added global variable gUnitError to be set to one if an error occurs
296: while parsing a unit spec.
297:
298:
299: --
300: Old updates:
301:
302:
303: After July distribution:
304:
305: FIXES: char *c_getpath() has the while loop that looked like:
306:
307: **** while (isalnum(c) || c == '{' || c == '}' || c == '-' || c == '\' ||
308: c == '^' || c == '_' || c == '/' || c == '.' || c == ':' ||
309: c == '+' || c == '*' || c == '#' || c == '!' || c == '=' ||
310: c == ';' || c == '$' || c == '(' || c == ')' || c == '[' ||
311: c == ']' || c == '?' || c == '>' || c == '<' || c == ',');
312:
313: Update to manual:
314:
315: 1. web_access.log permission should read:
316: -rw-rw-r-- instead of -rw-r--r--
317:
318: 2. weight = 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>