summaryrefslogtreecommitdiff
path: root/texmf-dist/doc/latex/acrotex/examples/jquiztst.tex
blob: b3185c1c401b64ee5fce5ed343780f54a10f303d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
\documentclass{article}
\usepackage[fleqn]{amsmath}
\usepackage{graphicx}
\usepackage
    [tight,
%     dvips, % <- replace with any supported driver
     designi,%forpaper,
     navibar
    ]{web}
\usepackage{exerquiz}
\usepackage[ImplMulti]{dljslib}
\usepackage{pifont}

\title{Extending the Exerquiz Package Math Fillin Questions}
\author{D. P. Story}
\subject{Sample file}
\keywords{LaTeX, PDF, derivative, calculus, JavaScript}
\university{NORTHWEST FLORIDA STATE COLLEGE\\
Department of Mathematics}
\email{dpstory@acrotex.net}
\version{3.0}
\copyrightyears{1999-\the\year}
\norevisionLabel

% Uncomment the lines below to create buttons
% for "Begin Quiz", "End Quiz" instead of links
%\useBeginQuizButton[\textColor{blue}]
\useEndQuizButton[\textColor{blue}]



% Uncomment this line to require the student
% to answer all questions in the quiz before
% the quiz is evaluated.
%\renewcommand\minQuizResp{highThreshold}

\font\hv=cmtt10 \def\hvperk{\char`^}
%\font\hv=hv at 9pt \def\hvperk{\char142 }
{\catcode`\^=\active
\gdef\js{\bgroup\hv\catcode`\^=\active \let^=\hvperk \jsi}
}\def\jsi#1{#1\egroup}

\def\hr#1{\textcolor{red}{#1}}
\def\hb#1{\textcolor{blue}{#1}}

\def\D{\dfrac {\text{d}}{\text{d}x}}
\def\dPose#1{$\D#1=$ }

\begin{document}

\maketitle
%\tableofcontents

\section{Math Fill-In Question}

The current version of \textsf{exerquiz} included only multiple
choice questions.  That's all well and good, but instructors would
occasionally like to ask questions that would require the student
to fill in the answer, whether it be numerical or symbolic.

This new question type, the Math Fill-in, can be used in either
the \texttt{shortquiz} or \texttt{quiz} environment.   In the
former case, there is immediate feedback as to right or wrong; in
the latter case, correction is delayed until the quiz is completed
and the user requests to be corrected.

In either case, you can choose to include the correct answer,
which can be obtained by the click of a button.

The next section outlines the syntax for the user to enter the
answer.

\subsection{Instructions}

When responding to a Math Fill-in question, you answer by typing
in your answer.  Use the following notation to enter your answers.

\begin{itemize}
\item Use \js{*} to indicate multiplication: Type \js{4*x} for $4x$;

\item Use \js{^} to indicate powers: Type \js{4*x^3} for
$4x^3$; \js{12*x^-6} for $12x^{-6}$.

\item Use parentheses to delimit the argument of a function; i.e., type
\js{sin(x)} rather than \js{sin x}.

\item Use parentheses to define the {\it scope\/} of an operation: For
example, type \js{4*x*(x^2+1)^3} for $4x(x^2+1)^3$; \js{ 4^(2*x+1)} for
$4^{2x+1}$; \js{(sin(x))^2} for $(\sin(x))^2$. {\it Do not\/} type
\js{sin^2(x)} for $\sin^2(x)$, type \js{(sin(x))^2} instead.

\item You can also use brackets \js{[ ]} or braces \js{\{ \}},
to delimit a mathematics expression.

\item Functions you may use:
\begin{itemize}
    \item  Trig: \js{sin}, \js{cos}, \js{tan}, \js{cot}, \js{sec}, \js{csc};
    \item  Inverse Trig: \js{asin}, \js{acos}, \js{atan};
    \item  Log: \js{ln} (natural log), or use \js{\tt log}; e.g. \js{ln(x)};
    \item  Exponential: The natural exponential function, $e^x$,
           can be entered as \js{exp(x)} or as \js{e^x}.
    \item  The absolute function, \js{abs($\cdot$)} can also be written
           in the usual way \js{|$\cdot$|}; thus, you can type either
           \js{abs(x)} or \js{|x|}.
    \item  Misc.: \js{sqrt}, usage \js{sqrt(x)} for $\sqrt{x}$ (or, use
           exponential notation: \js{x^(1/2)}).
\end{itemize}
\end{itemize}

When you enter your response, some attempt will be made to
determine whether the response is a valid mathematical expression.
For example, if you say \js{san(x)}, the function `\js{san}' will
not be recognized as a valid mathematical function; an error
message is generated, and the user is not penalized for a possible
typing error.  The JavaScript routines will also check for
unbalanced parentheses; thus, \js{((x^4+1) + sin(x)^2} will be
flagged as a syntax error.

\medskip\noindent\hr{\textbf{Important:}} When you enter a function
of a single variable---the only type currently supported---use as
the independent variable implied by the statement of the problem.
If the problem statement involves the variable $x$, use \js{x} as
the independent variable; if the problem statement uses $t$, use
\js{t} in your answer.  To enter a function of $t$ when a function
of $x$ is expected will, no doubt, result in missed problem.

\subsection{Answers and Solutions}

For fill-in questions, if the document author so wishes, answers
and (optionally) solutions can be provided.  The author provides
an ``Ans'' button. This button is visible for a \texttt{shortquiz}
and hidden for a \texttt{quiz}.

For a \texttt{shortquiz}, the ``Ans'' button can be clicked at
anytime. In the case of a \texttt{quiz}, after a \texttt{quiz} has
been completed, the hidden ``Ans'' buttons appear. Click on the
button to get an answer to the problem.

Concerning solutions. If the ``Ans'' button has a green boundary,
that means that question has a solution. Performing a
\texttt{Shift-Click} on the ``Ans'' button causes the viewer to
jump to the solution.  For multiple choice questions, the boundary
for the correct answer is colored green as well. Click on the
answer field to jump to the solution.

Solutions to a \texttt{quiz} can be protected from prying eyes
with the \texttt{\string\NoPeeking} command. See the
\hyperref[s:quiz] {Section~\ref*{s:quiz}} for an example and a
brief discussion.

\subsection{Practice Example}

\noindent\hb{\textbf{Example:}}  Consider the following sample question.
Practice by typing in the answer:
\js{2*x^3*(x^4+1)^(-1/2)}

\medskip
\begin{oQuestion}{example}

\def\RBW{120pt}\def\DefaultHeightOfWidget{16pt}\def\TBW{18pt}
\edef\STRUT{\noexpand\rule[\ifxetex-1bp\else-5bp\fi]{0pt}{0pt}}

\noindent$\dfrac{\text{d}}{\text{d}x} {(x^4 + 1)^{1/2}} =
\eqsanitize
\underset{\text{\rotatebox{-45}{\rlap{The Response Box}}}}
    {\underbrace{\STRUT\efKern{1bp}{0bp}\RespBoxMath{2*x^3*(x^4+1)^(-1/2)}{4}{.0001}{[1,2]}\relax\efKern{1bp}{0bp}}}\kern-1bp
\underset{\text{\rotatebox{-45}{\rlap{Answer Button}}}}
    {\underbrace{\STRUT\efKern{1bp}{0bp}\CorrAnsButton{2*x^3*(x^4+1)^(-1/2)}\efKern{1bp}{0bp}}}\kern-1bp
\underset{\text{\rotatebox{-45}{\rlap{Num.\ of incorrect tries}}}}
    {\underbrace{\STRUT\efKern{1bp}{0bp}\sqTallyBox\relax\efKern{1bp}{0bp}}}\olBdry\efKern{-1bp}{0bp}\sqClearButton$
\end{oQuestion}

\vspace{5\bigskipamount}

When a correct answer is input into the response box, the color of
the border surrounding the response box changes to \textcolor{webgreen}{green}.
The answer can also be expressed correctly using the \js{sqrt}
operator, try modifying the answer using \js{sqrt}.

\newpage
\subsection{Short Quiz Environment}\label{s:shortquiz}

%In the following problems, answer by typing in your
%response using the correct syntax.

Problem \#2 illustrates how to define a problem with a variable
other than the default $x$. Click on the ``Ans'' button to get
answers, shift-click on ``Ans'' buttons that have a green boundary
to get a solution.

\begin{shortquiz*}[answer] Answer each of the following. Passing is 100\%.

\answersEndHook{\hfill\makebox[0pt][r]{\sqTallyBox}}

\begin{questions}

\item If $f$ is differentiable, then $f$ is continuous.
\begin{answers}[diff]{4}
\Ans1 True & \Ans0 False
\end{answers}
\begin{solution}
Yes, differentiability at a point implies continuity at that point.
\end{solution}

%If you want another variable other than $x$, then specify the variable immediately
%following the correct answer in the \RespBoxMath command. Following the optional
%variable specification is the optional named destination for the solution the
%the problem.

\item $\dfrac{\text{d}}{\text{d}t} {4 t^{-1/2}}
    = \RespBoxMath{-2*t^(-3/2)}(t)[diffprob]{4}{.0001}{[1,2]}$\hfill
\CorrAnsButton{-2*t^(-3/2)}\cgBdry\sqTallyBox
\begin{solution}
We use the power rule:
\begin{equation*}
        4 t^{-1/2}
            = 4(-1/2) t^{-3/2}
            = \boxed{-2 t^{-3/2}}
\end{equation*}
Or, in the syntax of this quiz: \js{-2*t^(-3/2)}.
\end{solution}

\item \dPose{e^{x^2}}\RespBoxMath{2*x*e^(x^2)}{4}{.0001}{[0,1]}\hfill
\CorrAnsButton{2*x*e^(x^2)}\olBdry\sqTallyBox

\item $\displaystyle\int_0^\pi \sin(x)\,dx
    = \RespBoxMath{2}{1}{.0001}{[0,1]}$\hfill\CorrAnsButton{2}\olBdry\sqTallyBox
\end{questions}
\end{shortquiz*}

\begin{flushright}
\sqClearButton\olBdry\sqTallyTotal
\end{flushright}

\subsection{Quiz Environment}\label{s:quiz}

The example below illustrates multiple choice questions
and objective math questions in the \texttt{quiz} environment
and is protected by the \texttt{\string\NoPeeking}
command. First, browse the solutions at the end
of the file, when you encounter a solution protected by
\texttt{\string\NoPeeking}, see what happens.
Click on the ``Ans'' button to get answers, shift-click on ``Ans''
buttons that have a green boundary to get a solution.

\NoPeeking % or put in preamble

\begin{quiz}{mathquiz} Answer each of the following. Passing
is 100\%.

\begin{questions}

\item If $\lim_{x\to a} f(x) = f(a)$, then we say that $f$ is\dots
\begin{answers}[cont]{3}
\Ans0 differentiable &\Ans1 continuous &\Ans0 integrable
\end{answers}
\begin{solution}
A function $f$ is said to be continuous at $x=a$ if $x\in\operatorname{Dom}(f)$,
$\lim_{x\to a} f(x) $ exists and $\lim_{x\to a} f(x) = f(a)$.
\end{solution}

\item $\cos(\pi) = \RespBoxMath{-1}[cospi]{1}{.0001}{[2,4]}\cgBdry\kern1bp\CorrAnsButton{-1}$
\begin{solution}
Of course, everyone knows that $\cos(\pi) = -1 $.
\end{solution}

\item \dPose{e^{x^2}}\RespBoxMath{2*x*e^(x^2)}[diffexp]{4}{.0001}{[0,1]}\cgBdry\kern1bp
\CorrAnsButton{2*x*e^(x^2)}
\begin{solution}
First apply the rule for differentiating an the natural exponential, then apply
the power rule:
\begin{align*}
        \dfrac d{dx}\,e^{x^2} &
           = e^{x^2}\,\dfrac d{dx}\,x^2 \\&
           = e^{x^2}\,(2x) \\&
           = 2x e^{x^2}
\end{align*}
In the syntax of this document, \js{2*x*e^(x^2)}.
\end{solution}
\end{questions}
\end{quiz}\quad\ScoreField\currQuiz\olBdry\eqButton\currQuiz

\noindent
Answers: \AnswerField\currQuiz

\end{document}