\hrule 
\section{\capa{} Software Components}
\vskip 0.2in
\hrule 
\vskip 0.2in

There are nine application codes in the complete system.  
They are: {\sf Quizzer, Grader, Manager, Capalogin, Capasbin, Capahtml, 
Qzparse, Capautils} and {\sf AllCapaID.}  The {\sf Quizzer}, {\sf Grader}, and 
{\sf Manager} applications are tools for the instructor to create problem sets, grade exams and hand-scored problems, and manage the class.
It was necessary in earlier versions of \capa\ to use the {\sf Qzparse}, {\sf AllCapaID}, and {\sf CapaUtils} to perform certain tasks.  Now however, almost all of their functions can also be found or accessed in either {\sf Quizzer}, {\sf Grader}, or {\sf Manager}. The other three applications are necessary for the student interface.
The {\sf Capalogin} code is executed automatically for each student telnet session. Similar in function are the  {\sf Capahtml}  and {\sf Capasbin} 
 programs executed by the web server when a student uses web browser to answer the problem set. 
In order for many of these components to work properly, the instructor customizes the necessary {\sl capa.config} file which must reside in each classname
folder.  

\subsection{The {\sl capa.config} File}
A file called \index{capa.config}{\sl capa.config} located in the class directorry contains general configuration information needed for the \capa\ system. In 
the usual installation, the class directory contains the homework assignment 
sets. When generating statistics and reports, {\sf Manager} requires the user
to select a {\sl capa.config} file, and assumes that the user will go the the class directory to select that file. 
The {\sl capa.config} is divided into sections containing configurable parameters so that instructors can customize the \capa\ system.  
%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{itemize} 
%%%%%%%%%%%%%%%%%%%%%%%%%%

\item {\bf Class Structure:} The first section contains information related to the organization of a course.  It defines the paths pointing to other possible course components, such as \index{exam\_path}exam\_path, \index{quiz\_path}quiz\_path, \index{supp\_path}supp\_path, 
and \index{others\_path}others\_path.    Below is the exact text as it appears
in the {\sl capa.config} file.  Every comment begins with a ``\#'' symbol.  
The comments explain how to customize the file.
\begin{capacode}
# Comments in this file begins with a # mark in the first column
# when setting a value there MUST be a space before and after the = 

# ================= class structure ============
# Defined below are the paths to the various portions of the class.
# (Note: The homework is usually in the class directory, 
#           /usr/users/teacher/CAPA51/phy183f0
# The file  /usr/users/teacher/CAPA51/phy183f0/capa_config is used by 
# manager to generating stats such as the student course profile.
#
# Possible other "classes" (paths) a user MAY define are exam_path, quiz_path,
# supp_path (supplementary problems), and others_path. Data from these 4 paths
# are used by Manager and included in the stats generated (for example, when
# generating a summary of a student's performance, a Student Course Profile) 

quiz_path       = /usr/users/teacher/CAPA51/qph183f0
exam_path       = /usr/users/teacher/CAPA51/xph183f0
supp_path       = /usr/users/teacher/CAPA51/xpc183f0
others_path     = /usr/users/teacher/CAPA51/fci183f0

# A popular feature we have used is to allow students (optionally) to earn
# partial credit on Mid-term exams. Since our exams are mostly or totally
# computer scored, we have allowed students to correct their exams and earn
# partial credit: At the end of the exam, students pick up a different version
# of the  exam as if it were a homework assignment, and enter answers in the 
# computer with a short deadline (2-3 days). They must do all the problems, and
# earn partial credit on the improvement in score. 
# Example: For 25pct partial credit, a student with 60% on exam 1 (i.e.,
# set1.qz in xph183f0) and  90% on the corrections 1 (set1.qz in xpc183f0),
# gets                  60+0.25*(90-60)=67.5pct
# To use that feature in CAPA, the path where the corrections sets are entered
# must be defined. 

correction_path = /usr/users/teacher/CAPA51/xpc183f0

# Note that we used the supp_path for that purpose: set1.qz in xph183f0 has the
# same questions as set1.qz in xpc183f0, but the former is proctored and 
# students fill out scantron forms, while for the latter, students enter as 
# they would for homework, but in the xpc183f0 (eXamPartialCredit) "class".      \end{capacode}



\item {\bf Extrapolate Term Score:} An applet that allows students to 
extrapolate their term score can be enabled, and will include the Partial 
Credit by Corrections discussed above. A button on the main menu of the 
homework web page initiates the applet
\begin{capacode}
# ================= Extrapolate Scores Applet ================
# Server where the applet resides:
capa_server = capa2.nscl.msu.edu 

# Width and height of the applet:
tscore_width = 500
tscore_height = 450

# yes means show the applet, no inhibts the display of the applet
term_score_applet = no 

# The weights used in term score calculation formula:
#    term_score = homework_weight * sum of homework + quiz_weight * 
#    sum of quizes + exam_weight * sum of exams + final_weight * final exam
# These values will in most cases add up to 1.
homework_weight   = 0.3
quiz_weight       = 0.05
exam_weight       = 0.3
final_weight      = 0.35

# This specifies the weight of the correction exam: 
#    corrected exam score = raw exam score + correction_weight * 
#    (correction score - raw exam score)
# If correction score is less than raw exam score, no correction is taken.
correction_weight = 0.25

# final_exam_set_number specifies what set number will be or is the
# final exam in the class (directory) defined by exam_path.
final_exam_set_number = 4

# homework_count is the total number of homeworks that will be given
# to the students 
homework_count        = 12

# quiz_count is the total number of quizzes that will be given to the 
# students
quiz_count            = 20     \end{capacode}

\item {\bf Configuring the ``Discuss" forum:}
A discussion forum for posting questions and replies associated with problems in assignments can be enabled for each set, using the "set db Header" menu.
\begin{capacode}
# =============== capadiscuss configuration ====
# "Admin" sections: Teaching staff listed in Admin sections can delete
# and hide messages (instructor/TA sections). Examples:
# admin_section = 033
# admin_section = 33
# admin_section = 033,12,099,2
admin_section = 099

# You can ban particular users (problem students) from using the "discuss" 
# forum page.  Examples:
# banned_users = A12345677
# banned_users = a12345677
# banned_users = A12345677, a12345678,A12345666
banned_users = A12312312   \end{capacode}

\item {\bf Manager Configuration:}
 Data to be included in various reports and graphs:
\begin{capacode}
# =================== Manager configuration ====
# Manager will compile statistics with data from set1.db, 
# set2.db and so on until the setX.db file which does not 
# exist or until it reaches the set number specified below.
# Defining the limits with a number of 99 will make the program 
# to include all scores from  all setX.db files up to set 99.
homework_scores_limit_set = 99 
exam_scores_limit_set = 99 
quiz_scores_limit_set = 99
supp_scores_limit_set = 99
others_scores_limit_set = 99  

# Note that when calculating stats, Manager will ask the user to select a 
# capa_config file. Manager will assume that the capa_config file selected
# resides in the directory containing the homework sets for which the 
# limit "homework_scores_limit_set" is set above.  \end{capacode}


\item {\bf Command Specifications}: This section specifies the absolute 
path to commands that are used by the \capa\ system,
such as {\tt latex}, {\tt dvips}, {\tt mail}, {\tt allcapaid}, and 
{\tt qzparse}.  It should be unnecessary to change these.

\begin{capacode}
# ================= Command specifications =====
#
#  When specifying a command, use double quotes.
#    
latex_command      =  "latex"
dvips_command      =  "dvips"
mail_command       =  "mailx"
allcapaid_command  =  "allcapaid"
qzparse_command    =  "qzparse"
answers_command    =  "answers"            \end{capacode}
%%%
\item {\bf Printing Configuration}: The next section lets the instructor identify the printers he/she will 
use to print assignments, exams, quizzes, etc. 
The command used to choose one or two sided printing should be specified in
this section also.  The commands listed below may differ for different operating systems. Check with your system administrator to determine both the printer name and print command syntax.
\index{lprOneSided\_command} 
\index{lprTwoSided\_command}
\begin{capacode}
# ================= Printing configuration ====
#
#  -printer list-
#  add available printer name here
#   they will appear in a selection list in the order listed here
#   multiple printer quese can be defined
#
printer_option  = "print_queue1"
printer_option  = "print_queue2"

#  -print command-
#  The predefined variables: $PS_file and $Printer_selected 
#  indicate the file to be printed and the printer queue to be
#  printed to.
#
lprOneSided_command = "/usr/bin/lpr -P$Printer_selected"
lprTwoSided_command = "/usr/bin/lpspr -K2 $PS_file | /usr/bin/lpr -P$Printer_selected"          \end{capacode}
%%%

\item {\bf Capalogin/Web Settings:}
This section specifies options for the {\sf Capalogin} shell and the 
Web display.
It is unnecessary to change these.
\index{capalogin\_goodbye\_delay}
\index{capalogin\_inactivity\_delay}
\index{capalogin\_show\_summary\_score}

\begin{capacode}
# ================= capalogin/web settings =========
#
# Specify the capalogin goodbye message delay in seconds.
# This if for the telnet interface only.
capalogin_goodbye_delay  = 4 	 

# Specify the capalogin inactivity delay time in minutes.
# Default value is 60 minutes.  0 means never time out.
# This if for the telnet interface only.
capalogin_inactivity_delay  = 25

# If set to "none", then the summary score will not show.  Any other 
# value or not defined will cause the summary score to be displayed.
# This if for the telnet interface only.
#capalogin_show_summary_score = show

# Used to define how many problems to be displayed on the webpage.  
# Default is all. If specified must have and integer argument, otherwise 
# uses default value.
#num_questions_per_page = 26

# Used to define the length of the status line on the top of the webpage.
# If there are more problems than this, multiple status lines are created. 
# By default, one line of the length of the # of problems in the set
# is created.
#web_status_line_length = 26

# If set to "no", then the viewing of term summaries is not an option. 
# Default is yes.  This is for both web and telnet interface.
#term_summary_button = yes

# Used to define the cgi path, if unspecified, defaults to capa-bin
#capaweb_cgibin_path = /path/to/cgi    \end{capacode}
%%%%
\item {\bf Quizzer Settings:} 
The next section is related to an option in 
{\sf Quizzer}. 
Everything between ``BeginStandardQuizzerHeader'' and
``EndStandardQuizzerHeader'' is inserted into the {\sl .qz} file when 
the user clicks on the \fbox{Std. Header} button while using the 
{\sf Quizzer} application.
\begin{capacode}
# ================= Quizzer settings ==========
#Everything between BeginStandardQuizzerHeader and
#EndStandardQuizzerHeader is inserted into the .qz file when using the
#Std. Header button in Quizzer

BeginStandardQuizzerHeader 
//CAPA library problems NOT included in the demolibrary are copyrighted
//by the author, institution, publisher, etc..  By using these materials, 
//the user agrees to:
// 1) Protect the problem source code files from unauthorized copying.
// 2) Limit access of the problem source material to teaching staff.
//    This includes installing the CAPA system securely (please see
//    READMEsecurity.txt from the CAPA distribution).
// 3) The user is free to mix, cut and paste, modify, adapt, delete,
//    improve, etc. the problems and graphics for her/his own use.
//
//See quizzer "Info" or http://capa.msu.edu/license for more information 
//about terms and conditions.
//
/IMP "/demolibrary/Tools/StdMacros"
/IMP "/demolibrary/Tools/StdUnits"
/IMP "/demolibrary/Tools/StdConst"
/IMP "/demolibrary/Tools/GreekWeb2"
/IMP "HWTop"
EndStandardQuizzerHeader   \end{capacode}
\item {\bf Unit Section:} This is divided into three subsections. 
%%%%%%%%%%%
\begin{enumerate}
%%%%%%%%%%%
\item {\bf Base Units:} The capa.config file defines the base units first. 
It begins with the special marker {\tt << Base Unit >>.} Each line contains a definition of a base unit which consist of  
(1) a full name, (2) a symbol representing that base unit, (3) and a 
comment beginning with a ``\#''
character. All three fields are required and are space delimited (no tabs). There is a 47 character limit to the unit name, 15 character limit for the unit symbol and a total of 32 base units can be defined. 

\begin{capacode}
# ======================= Unit section =============
# Base Unit
# name      symbol     comment

<< Base Unit >>

meter           m      # length
kilogram        kg     # mass
second          s      # time
ampere          A      # electric current
kelvin          K      # thermodynamic temperature
mole            mol    # amount of substance
candela         cd     # luminous intensity

\end{capacode}

%%%%

\item {\bf Prefixes:} The next subsection of units includes prefix symbol definitions. 
It consists of three fields on each line, separated by 
white spaces or tab characters.  This section needs to begin with the marker
{\tt << Prefix >>.}

\begin{capacode}
#   Prefix     symbol     factor
<< Prefix >>

yotta            Y         10^{24}
zetta            Z         10^{21}
exa              E         10^{18}
peta             P         10^{15}
tera             T         10^{12}
giga             G         10^9
mega             M         10^6
kilo             k         10^3
hecto            h         10^2

deci             d         10^-1
centi            c         10^-2
milli            m         10^-3
micro            u         10^-6
nano             n         10^-9
pico             p         10^{-12}
femto            f         10^{-15}
atto             a         10^{-18}
zepto            z         10^{-21}
yocto            y         10^{-24}

\end{capacode}

%%%%
\item {\bf Derived Units:} The final part of the unit subsection is the definition of derived units. It begins with the special marker {\tt << Derived Unit >>}
and consists of FOUR required fields on each line.  The fields are as follows: \\
\begin{itemize}
Field (1)  is the unit name; maximum of 47 characters with no spaces.  \\
Field (2)  is the symbol representing the unit; maximum of 15 characters with no spaces.  
\end{itemize} 
Fields (1) and (2)  are separated by spaces. 
Field (3) is the way the unit is calculated from base units or other 
previously defined derived units.
Calculations of derived units use the standard operands for multiplication
(*), division (/), and power (\verb+^+). 
Addition and subtraction are not allowed.  Numbers can be in 
floating point or exponential format.  
The comment, field (4), is {\bf required} and begins with a hashmark (\#). 
\begin{capacode}
# Derived Unit
# name       symbol     unit          comment
# name must be in oneword
<<Derived Unit>>

gram            g      0.001 kg      # mass
hour            hr     3600. s       # time
minute          min    60 s          # time
day             day    24.0 hr       # time
year            yr     365.24 day    # time
pound           lb     0.45359237 kg # mass
ounce           oz     1.77185E-3 kg # mass
inch            in     2.54 cm       # length
foot            ft     12 in         # length
mile            mi     5280 ft       # length
yard            yd     0.9144 m      # length
nautical_mile   n_mi   6080 ft       # length, nautical mile (UK)
rood            rood   1210 yd^2     # area, rood
acre            acre   4840 yd^2     # area, acre
hertz           Hz     1/s           # frequency
litre           L      10^3/cm^3     # volume
newton          N      m*kg/s^2      # force
pound_force     lbf    4.44822 N     # force
dyne            dyn    1E-5 N        # force
pascal          Pa     N/m^2           # pressure, stress
bar             bar    1E5 Pa          # pressure
mmHg            mmHg   1.33322E2 Pa    # pressure, millimeter of mercury
torr            torr   1 mmHg          # pressure
atm             atm    760 torr        # standard atmosphere
joule           J      N*m             # energy, work, heat
electronvolt    eV     1.6021892E-19 J # energy
calorie         cal    4.1868 J        # energy
Btu             Btu    1.05506E3 J     # energy
watt            W      J/s             # power, radiant flux
coulomb         C      A*s             # electric charge
volt            V      J/C           # electric potential, electromotive force
ohm             ohm    V/A           # electric resistance, use this in /ANS
ohm             ohms   V/A           # electric resistance
ohm             Ohm    V/A           # electric resistance
ohm             Ohms   V/A           # electric resistance
siemens         S      1/Ohm         # electric conductance
farad           F      C/V           # electric capacitance
tesla           T      V*s/m^2       # magnetic flux density
weber           Wb     V*s           # magnetic flux
henry           H      V*s/A         # inductance
radian          rad    m/m            # plane angle
degree          deg    1.745329E-2 rad # plane angle (Pi rad=180 deg)
steradian       sr     m^2 /m^2        # solid angle
lumen           lm     cd*sr         # luminous flux
lux             lx     cd*sr/m^2     # illuminance
becquerel       Bq     1/s           # activity (radioactive)
gray            Gy     J/kg          # absorbed dose (of radiation)
sievert         Sv     J/kg          # dose equivalent (dose equivalent index)
astroUnit       AU     1.49598E11 m  # mean distance earth to sun

\end{capacode}
%%%%
%%%%%%%%%%%
\end{enumerate}
\newpage
%%%%%%%%%%%
\begin{itemize}
\item {\bf Note:} The coded units are interpreted in the order of basic unit, derived unit, then prefix. For example, ``T'' will be matched against ``tesla'' instead of 
considered the prefix ``T''. Another example is that ``min'' will match
``minutes'' instead of treated  as a combination of the prefix ``m'' and units 
``in'' 
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\subsection{\sf Quizzer}
	\begin{itemize}
	\item  {\bf Location:}  The {\sf Quizzer} application can reside in any directory and can be linked to a
	directory within the user's path.  For example, linking {\sf Quizzer} to  {\sl /usr/local/bin} as was directed in the installation instructions makes the
	application available to all users on the machine.
	
	
	\item {\bf Function:} The major functions of the {\sf Quizzer}
	application are:
		\begin{itemize}
		\item Create and edit problem set files
		(for homework, quizzes, and exams),
		named {\sl set1.qz}, 
		{\sl set2.qz}, etc. which contain ASCII text only.
		\item Edit existing question files in ASCII text.
		\item Calculate and preview the answers generated by the problem
		set code.
		\item Preview the resulting problem sets in the following three
		modes:
		\begin{enumerate}
		\item Enscript Mode:  See how the problem set appears to 
		students who log into \capa\ through a terminal.
		\item Tex: Preview the \LaTeX\  typeset.
		\item Web: Preview the resulting problem set showing the coded
		HTML flags.
		\end{enumerate}
		\item Create a {\sl set$x$.dvi} and view an image of the printe
student problem set.
		\item Generate the database file ({\sl set$x$.db}) which contains the time constraints
		on 
		the availability of the problem sets to students for a given
		assignment.  Each problem set must have an opening-date, a due-date,
		and a date
		when answers are available. 
		\item Print the problem set(s) for a student, for one or more sections, or for the entire class. (We recommend printing the \capa\ ID on student papers.
The {\sl HWTop} file included in the distribution does this already.) 
		\item Analyze set:  This gives the low end, high end, and distribution of answers for problems in a set.  This can be done for all students in a class or for a random sample of students.
		\end{itemize}
	\item{\bf Mandatory Files}: 
{\sl set1.qz}, {\sl TeXheader}, {\sl TeXfooter}, and {\sl classl}.

		\begin {itemize} 
		\item {\bf set$x$.qz}: Problem set files are the files containing the coded
		problems created by the
		instructor for each given assignment. They are  labeled {\sl
		set1.qz}, {\sl set2.qz,} etc.  There is a limit to 99
		problem sets for each class. 
		\item {\sl TeXheader} and {\sl TeXfooter:} These files specify the
		information needed by the \LaTeX\  formatter to create the 
		document for printing.
		\item {\sl classl}: The class list file for each course using the system is the {\sl classl} file.  
 		The maximum number of students in one class is 4096.
 		 The format of the entries in the class list file is strict and
 		 must correspond exactly to that in the
 		following example.
\newpage
			\begin{capacode}			
123456789012345678901234567890123456789012345678901234567890123456789012345... 
nsc 121   001 A12345678 Albertelli, Guy II                  albertel@pilot.msu.edu
nsc 121   001 A23592320 Berryman, Felicia V.                berryma5@pilot.msu.edu
nsc 121   001 A73336318 Kashy, Edwin N.                     kashy@nscl.msu.edu
nsc 121   001 A87654321 Student, Jaimie .
			\end{capacode}
			{\bf Note:} The first row of digits is {\bf not} part of
			the file but is given here to locate the information in
			the file. 
			\begin {itemize}
			\item The fields used by this system are: 
				\begin{enumerate}
				\item Section number which appears in columns
				$11$ to $13$
				\item Student Number in columns $15$ to $23$
				\item Student Name in columns $25$ to $35$ 
				\item Student Email in columns $61$ to $101$
				\end{enumerate}
			The maximum number of characters in the Student Name
			field is $30$. The course acronym and number
			(in columns $1$ to $10$) are not used
			by the system, but are convenient for recordkeeping. 
			The format of the file must be exact. The section number
			is used for printing.
			\item Each line, including the last line, must end with
			a carriage return. 			
			\item The period (.) added for students with no middle
			names has facilitated importing \capa\ summaries into
			some spread sheet programs
			(i.e. Lotus) when preparing final grades for a course.
			\end{itemize}

		\end{itemize}

	\item {\sl records} directory: 
		This folder must be present as a sub-directory of the
		class directory. {\sf Quizzer} writes the date information from
		{\sl set$x$.qz} in {\sl records/date$x$.db}.  {\sf Capalogin}  saves student
		input from the telnet session  for {\sl set$x$} in {\sl records/log$x$.db}.  {\sf Capasbin} saves student input for
		the web session for {\sl set$x$} in {\sl records/weblog$x$.db}.  The summary
		information from both {\sl log$x$.db} and {\sl weblog$x$.db} is written to {\sl set$x$.db }. Both {\sf Capalogin} and {\sf Capasbin} create a 
{\sl set$x$} folder which contains other folders called {\sl problem$y$} if the set has a {\tt /SUBJECTIVE()} question.  This folder contains files of the {\tt /SUBJECTIVE()} answer essays with student numbers 
as their names. 
		The duration of student telnet sessions is saved in the file {\sl
		records/duration.db}. As students login via telnet, a file named {\sl active.log} is created.  It is used
		to  limit the number of concurrent telnet sessions per student. Also created are two files, 
		{\sl submissions$x$.db} and {\sl websubmissions$x$.db} which records all student entries.  For a 500 student class having 11 assignments you can expect this directory to grow to approximately 35Mb in size.  \\  \\
The above files are also used by {\sf Grader} and {\sf Manager} for generating statistics and summaries. 


\item {\sf Qzparse} is an application separate from from {\sf Quizzer}.  
It's functions though can now be done using {\sf Quizzer} in \capa\ 5.0.  
	\begin{itemize}
	\item {\bf Functions}: {\sf Qzparse} can be used to generate the .tex files
	needed to prepare problem sets in a batch mode without using {\bf
	quizzer}. It can create one output file for an entire section or a
	multiple number of sets for a given student. The output file can then be
	processed by \LaTeX\ and {\sf Dvips} to produce a postscript file for
	printing.  The options of {\sf Qzparse} are displayed by
	typing {\tt qzparse -h}.
\begin{capacode}capa2.nscl.msu.edu> qzparse -h
USAGE: qzparse [ -[T|H|A][a|b] ] [-Sec [n|n:m] | -Stu sn [-o filename] ]
          [ -Set [n|n:m] ] [-c path_to_class] [-d outputdirectory]
 Example 1: qzparse -Tb -sec 2:3 -set 2:5
            will generate tex files with both questions and answers
            for sections 2 to 3, sets 2 to 5
 Example 2: qzparse -Ha -stu A12345678 -set 3
            will generate html files with answer only 
            for student A12345678 set 3
          -T     = tex   mode
          -H     = html  mode
          -A     = ascii mode
                 = default question only
            a    = answer   only
            b    = both question and answer
          -Sec 3 = for section 3
          -Sec 3:7    = from section 3 to section 7
          -Stu A12345678 = for a specified student
          -Set 1 = output set 1
          -Set 3:4 = output from set 3 to set 4
          -c class_path
          -o output_filename_with_absolute_path (only for a student)
          -d directory_to_create_files_in (default is class_path/TeX)
-------This is version 5.0.3 @ 11:23-Apr-07-1999
------------------------------------------------------
\end{capacode}
\item Examples:
       		\begin{enumerate} 
          	\item For preparing TeX files for set 4 papers for all students
          	in sections 1 thru 45:  \\
          	{\tt qzparse -T -sec 1:45 -set 4 }
          	\item For preparing papers which only contain the answers of a
          	particular set for all students in section 3: \\                
	  	{\tt qzparse -Ta -sec 3 -set 4}
          	\item For preparing set 1 thru 5 for a student with student
          	number A87654321:\\
	  	{\tt qzparse -T -stu A87654321 -set 1:5 }
         	\item For preparing set 1 for a student with student
          	number A87654321, with the output file {\sl A87654321.tex}
                placed in the {\sl /usr/users/teacher} directory.\\
	{\tt    qzparse -T -stu A87654321 -set 1 -d /usr/user3/teacher}
		\end{enumerate}   
	
\item {\bf Files}:  {\sf Qzparse} uses the same files as {\sf Quizzer}.  In
addition, running {\sf Qzparse} will create a {\sl TeX} sub-directory in the
class directory.  {\sf Qzparse} will write output files such as {\sl section1-set1.tex} or {\sl a87654321.tex} to this directory. 
The {\sl .tex} files must be passed through
\LaTeX\ and the {\sf dvips}  codes to make postscript files for printing.
 (See guided tour of {\sf Qzparse} for explanations on how this is
 accomplished.)
\end{itemize}
\end{itemize}
%
\subsection{{\sf Capalogin}, {\sf Capahtml}, and {\sf Capasbin}}
\begin{itemize}
\item {\sf Capalogin}
\label{capalogin}
	\begin{itemize} 
	\item {\bf Function}: The main function of the {\sf Capalogin} code is
	to handle remote sessions of the students who access \capa\ with VT100
	terminals.  The code is run instead of a UNIX shell in order to allow
	large numbers of students to easily login while controlling their access
	to the data files. 
	{\sf Capalogin} queries active.log if the student is already logged-on in this
	class.  If the student is already logged in, then a warning message is
	sent
	(see below) and the student is allowed in to the system.  If the student
	has opened 2 sessions without exiting properly, the student is not allowed
	into the system and is sent a different warning message.

	\item {\bf Files:}  The instructor can send general information  to
	the entire class by typing messages into certain files. The
	login-specific files, {\sl welcome.msg} and {\sl goodbye.msg}, (and if needed
	the {\sl help.msg}, {\sl second-login.msg}, and {\sl third-login.msg}), can
	be edited to send information to students, reminding them of deadlines
	or of exam dates, telling them to disregard a particular problem (when a serious
	error has been made in coding),  etc. Note that the instructor can
	code hints and explanations for individual problems directly in the
	set$x$.qz files. 
	Files and their functions are listed below:
	\begin{tabbing}
	123456789012345678 \= 12345\=67890 \kill
	{\sl welcome.msg} \> $\Rightarrow$ The message displayed to the student
	upon login. \\
	{\sl help.msg} \> $\Rightarrow$ The message displayed when the student
	selects the menu item {\tt Help}. \\
	{\sl goodbye.msg} \> $\Rightarrow$ The message displayed after a student
	selects menu item {\tt eXit}. \\
	{\sl second-login.msg} \> $\Rightarrow$ The message displayed when a student already is logged on and \\
	                        \> tries to begin a second session.\\
	{\sl third-login.msg}  \> $\Rightarrow$ The message displayed when a student already is logged on twice \\
	                        \> and tries to begin a third session.\\
        {\sl capa.config}      \> $\Rightarrow$ Controls the functions as described in the {\sl capa.config} section.\\
	
	\end{tabbing}
	\end{itemize}

\item{\sf Capahtml}
       \begin{itemize}
        \item {\bf Functions}: The major functions of {\sf Capahtml} are to:
              \begin{itemize}
              \item Authenticate the student number and \capa\ ID entered 
                    by the student and generate the main menu page 
                    after verifying them.
              \item Produce the page that contains the corresponding problem set when a
                    student selects ``Try current set'' button from the main menu page. 
              \item Display a summary of student grades when 
                    ``Term summary'' button is selected. 
              \end{itemize}
       \end{itemize}
\item {\sf Capasbin} 
       \begin{itemize}
         \item {\bf Functions}: The major functions of {\sf Capasbin} are to:
              \begin{itemize}
              \item Check the correctness of answers submitted by the student. 
              \item Give the appropriate response to a student's entry and 
                    display the correct answer when the entry is satisfactory. 
              \end{itemize}
       \end{itemize}
       \end{itemize}
\subsection{\sf Grader}
	\begin{itemize}
	\item {\bf Functions}: The major functions of {\sf Grader} are to:
		\begin{itemize} 
		\item Display a summary of student grades and \capa\ ID numbers
		for any problem set. 
		\item Generate the reports found in the {\sl records} directory.
		\item Grade subjective answers, such as essays entered in
		through the \capa\ system.
		\item View a summary of a students login file (the problems
		correct vs. incorrect) with their \capa\ ID for that set.
		\item Grade hand-graded problems for a student while viewing
		the correct answers.		
		\item Generate grade reports for a student, a section, or for
		the entire class.
		\item Excuse a problem for the class.
		\end{itemize}
	\item {\bf Files}: {\sf Grader} reads the {\sl classl} file and the
	files in the {\sl records} directory generated by {\sf
	Quizzer}  and {\sf Capalogin} and/or {\sf Capasbin}.  The reports created by
	{\sf Grader} are put into the class directory. 
	The reports for the entire class are labeled {\sl ClassSet1.rpt} and
	reports for a section are labeled {\sl Sec1Set1.rpt}.  
	They should be renamed if permanent records are required, i.e., a subsequent 
	{\sl ClassSet1.rpt}  file will overwrite any previous {\sl ClassSet1.rpt}.  Grader also writes a file called {\sl gradingstatus} to the {\sl records/set$x$} directory.
	\end{itemize}

\subsection{\sf Manager}
	\begin{itemize}
	\item {\bf Functions}: The following are functions of {\sf Manager}:
		\begin{enumerate}
                 \item {\bf Manage Classl}. A convenient way to edit the classl file (add student, delete, sort, find, change section, merge, etc.). Don't forget to "save" after making a change.
   
		\item {\bf Scoring} Included in {\sf Manager} is a utility 
                called {\sf Scorer}
		which the instructor uses to import a score report from a
		machine scored scantron individualized exam and grade that
                \capa\ generated exam where the correct pattern differs 
                for each student. Up to 50 questions can be included in a quiz or exam.
                The information on the score report file is shown  below:
                \begin{capacode}
Sample format for one student, 3 capa questions
Character numbers begin with zero!
0         1         2         3         4         5         6         7         8         9     
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
515000012001090999003   5327 #0001      BERRYMAN  F     A23592320002EDEIAI   1 1 1    1 111     1   
 
              start  end    Example:
 SerialNumber  {  5  8 }    Exam above was the 12th exam to be scored
 LastName      { 40 49 }    BERRYMAN   as last name.
 FirstInitial  { 50 50 }    F as first initial
 StudentNumber { 56 64 }    student number is A23592320   
 Section       { 65 67 }    entered section 002 on scantron sheet
 CapaID        { 68 73 }    CapaID+  This is a six letter code which is printed on each
                            student's exam. There is a space to enter the  code on the 
                            scantron sheets (available from MSU). Here, the code was EDEIAI
 Question 1    { 76  85 }   (starting at character 76, the student's response is recorded.
 Question 2    { 86  95 }   The CAPA scantron form is has 10 bubbles with choices labeled
 Question 3    { 96 105 }   both numerically and alphatically 1 through 10 and A through J.
  .....                             
 Question 50   {566 575 }   Each question is 10 columns and there are 50 possible questions.
                            Each column for a question must have either a space or a 1   
                            1 means it was marked, space means it wasn't. 
\end{capacode}
                 Scorer puts the results of the scoring into a setX.sb file which the user may
view to acertain that the scores are reasonable. The user can have the code also write the file to setX.db, at which time the students may see their grades.

		\item Print one or more assignments for a student without 
		having to open the {\sl set$x$.qz} file in {\sf Quizzer}.  You can			choose the student by either name or student number.   
		\item Randomize a user made seating file for assigned seating
		in exams.
		\item Use {\sf Manager} to access {\sf CapaUtils 1.1} which performs the following functions:
		\begin{enumerate}
		\item View summarized log files.
		\item Run statistics on a set. 
		\item Generate a student course profile which summarizes all
		data from the class, exam, quiz, supplementary, and others 
		paths.
		\item Get \capa\ IDs for one student or the entire class.
		\item Analyze the problems in the set and see how each problem
		discriminates between the upper and lower percents of the class,			the correlation between different problems, and what degree of 
		difficulty each problem had for your class.
		\item View the exact submissions a student enters into a telnet
		and Web session.
		\item Analyze a class report generated in grader and view the
		distribution of correct verses incorrect.
		\item Analyze and generate the output generated by scorer.
		\end{enumerate}
		\end{enumerate}
	\item {\bf Files}: {\sf Manager} reads the classl file, instructor 
	generated seating files, and files generated from machine scoring.  {\sf 	CapaUtils} reads report files in the class name directory and files 
	found in the {\sl records} directory.
\newpage
	\item An older version of {\sf CapaUtils} can be accessed 
	through a terminal.
\begin{footnotesize}
\begin{verbatim}
capa2.nscl.msu.edu> capautils.pl
USAGE: capatools.pl -c Full_path_to_class              
Please enter the CLASS absolute path:
/usr/users/teacher/CAPA5/nsc121s9

       +-----------------------------------------------+
       |        Welcome to CAPA Utilities Ver 1.0      |
       +-----------------------------------------------+

       +------/usr/users/teacher/CAPA5/nsc121s9--------+
       |                                               |
       |  1: Change class path                         |
       |  2: Run capastat                              |
       |  3: Log analysis on Y, N, S, U, and u         |
       |  4: Student course profile                    |
       |  5: CAPA IDs for one student                  |
       |  6: All CAPA IDs                              |
       |  7: Item analysis                             |
       |  8: Item correlation                          |
       |  9: Print assignment(s) for a student         |
       | 10: View submissions for a student            |
       | 11: Quit                                      |
       |                                               |
       |SELECT:                                        |
       +-----------------------------------------------+
\end{verbatim}
\end{footnotesize}
\item \capa\ IDs can also be generated through the terminal using the function
{\sf AllCapaID}.
\begin{footnotesize}
\begin{verbatim} 
capa2.nscl.msu.edu> allcapaid -h
USAGE: allcapaid [-s start-set] [-e end-set] [-stu student-number] [-c class-dir
ectory] [-d output-directory] [-h] [-i] [-sec [n|n:m]]
       start-set : default 1
       end-set   : default 10
       student-number  : no default
       class-directory : no default
       output-directory: class-directory/capaID
       -Sec 3          : for section 3
       -Sec 3:7        : from section 3 to section 7
       -i              : don't create files, print to the screen
       -h              : prints this message
       CAPA version 5.0.3, 11:23-Apr-07-1999
\end{verbatim}
\end{footnotesize}
\end{itemize}

 
