
Parser
  1. Formula answer type 
     /LET p[1] = "0.001,0.2,0.3"  // this has to be a string because of multiple values. 
     /LET p[2] = "0.002,0.4,0.6"  // 
     /LET p[3] = "0.003,0.6,0.9"  // 
     /LET p[4] = "0.004,0.7,1.2"  // 
     
     /LET pt = "1.3,4.5,8.9,0.3,5.8"
     
     /LET pt2 = "1.2" + "," + pt  // "1.2,1.3,4.5,8.9,0.3,5.8"
     
     /ANS(fm, evaluate = <m,g,theta @ pt,p[4],p[1],p[2]> , STR=FML, TOL=0.001)
     
     /ANS(fm, Evaluate = < "x,y,z" @ pt1:pt2#5,p[4],p[1],p[2]> , STR=FML, TOL=0.00001)
     
     /LET v_str = "x,y,z"
     
     /ANS(fm, Eval = < v_str @ pt1:pt2#5,p[4],p[1],p[2]> , STR=FML, TOL=0.00001)
     
     
     // generate uniformly 5 pts fom pt1 and pt2
     
     /LET fm = "x^2 + y^2"
     /LET v_str = "x,y"
     /LET pt[1] = "0.5,0.5"
     /LET pt[2] = "1.0,1.0"
     
     
     
     //  TOL can be an absolute value, which indicates that the student input will be 
     //    combined with the exact answer to form a formula of the form
     //    (fm) - (input)  and evaluated at specified point coordinates. 
     //    the evaluated value is then compared against the tolerance specified
     
     /ANS(fm, Eval = < v_str @ p[1]> , STR=FML, TOL=0.00001)
     
     //  TOL can be a relative value, as indicated below, which specifies the way
     //     to evaluate the formula as
     //     (input)/(fm) 
     //     the absolute value of this formula is compared against 1.0001 
     // 
     
     /ANS(fm, evaluate = < "x,y" @ p[1],p[2]> , STR=FML, TOL=0.01%)
    
     // at this point, the number of variables in v_str MUST match the number of 
     // values specified in pt
     // 
     
     // There are two ways to specify a range of point coordinates:
     
     /LET five_points = "0.1,0.1:1.5,1.5#5"
     /LET pt_start = "0.1,0.1"
     /LET pt_end   = "1.5,1.5"
     /LET pt_cnt   =  5
     
     
     /ANS(fm, eval = < "x,y" @ five_points, pt_start : pt_end # pt_cnt > , STR=FML, TOL=0.01%)

     Example: 
     
     Enter the formula describing
      force between an object of mass m and an object of mass M with distance r meter apart:
     (Use G as the gravitational constant)
     
     /LET fm = "G*(1/r^2)*(m*M)"
     
     /LET pt1 = "0.2,0.3,9.806"
     /LET pt2 = "1.0,2.0,9.806"
     /LET pts_cnt = 20
     /ANS(fm,STR=FML,eval = <"m,M,G" @ pt1 : pt2 # 20>, TOL = 0.00001)
     



     
     
     
  2. 




  3. Installation script
     Assumption: 
        Grader 
        Quizzer
        capalogin
        capahtml
        capautils
        class directory
        
     
http://wmm.coe.ttu.edu/ieee_trans_ed/nov99/instructions.htm

   3. Item Response Annotation Syntax 
      For each problem, we need
        date and time
        class and school 
        
        # total number of students that should have tried this problem
        # of students who actually tried this problem
        # of correct
        # of incorrect
        
        raw score distribution of students that have correct answer of this problem
        raw socre distribution of students that have incorrect answer of this problem
        
        The syntax of item response analysis
        /IRA(DATE;)
        
        
        /IRA(1999/3/1,12:45;
        
        


July 15, 1999

1. Web interface 
   Next link like top link
   equation answers use large text box
   -H works so that output can be viewed through web browser
   
2. New functions
   is_open(), is_due(), is_answer(), due_date()
   open_date(), answer_date(), capa_id(), capa_id_plus()
   all take an argument which specifies which set the information is for
   to_string() work like /DIS()
   table()
   min(), max(), sort(), median() accept array variables
   first_name()
 
3. CAPA syntax 
   /IF bug (which required all /ELSE)
   /MAP undefined variables
   /VERB /ENDVERB
   string answers are \begin{verbatim}...\end{verbatim}
   /MAP can have spaces
   0F format should output 90. not 90
   arbitrary number of problems
   /ANS type for condition satisfaction such as a=1, b=2, c=3, 
        satisfying ax + by +c = 0.0
   CR/LF
   /MAP(seed;out;in;num)
   missing /ENDIF
   /AND order indiscriminate option
   4x work as 4*x
   random seed based on student number, set number and prob number
   figure out the correct sig fig limitation automatically
4. New features in utilities
qzparse hearder check 
        new option in -nopagebreak inhibits \newpage
        new option use \clearpage instead of \newpage
        new option to print students in alphabetical order, to select how many
            students to print at a time
        new option to control answer only output format
        don't seg fault on malformed options
capalogin capaweb
        submission file creation becomes an option
        set/weighted percentages per capa.config file
        zero as an answer when a sig fig limitation is set
        support anon quiz
        :p for view previous subhective 
        error message when letter answer is given for numerical answer
        equation answer using long editor
        incorrect answer switched to incorrect value, incorrect answer
        when student enters T/F for questions expecting A-E
GLabel.java 
        better way to implement? 
dateX.db 
        for dates on a per student basis
Classl editor 
        dropped section
        comments in classl
        
5. Installing scripts
   automatic addition to class
   file structure diagram
   
6. Meta structures
   xdvi config option
   quizzer access to capa.config more easily
   keywords for each problem
   
7. Overall
   memory leaks  
   printout of whole library
   statistics on problem usage
   HTML equation 
   international characters
   
